В то время как Ваше решение должно работать, может быть трудно читать в зависимости от уровня квалификации Ваших коллег - программистов. Кроме того, это отодвигает функциональность от сайта вызова. Который может сделать обслуживание немного более трудным.
я не уверен, состоит ли Ваша цель в том, чтобы получить ключи в вектор или распечатать их в суд, таким образом, я делаю обоих. Можно попробовать что-то вроде этого:
map<int, int> m;
vector<int> v;
for(map<int,int>::iterator it = m.begin(); it != m.end(); ++it) {
v.push_back(it->first);
cout << it->first << "\n";
}
Или еще более простой, если Вы используете Повышение:
map<int,int> m;
pair<int,int> me; // what a map<int, int> is made of
vector<int> v;
BOOST_FOREACH(me, m) {
v.push_back(me.first);
cout << me.first << "\n";
}
Лично, мне нравится версия BOOST_FOREACH, потому что там меньше вводит, и это очень явно о том, что это делает.
Он дает вам каталог каталог всех атрибутов объекта.
Это не каталог, используемый в файловых системах, а стандартное использование: список имен или данных.
Вы получаете «каталог», список всего содержимого, доступного на каком-то ресурсе.