Вопросы с тегом «stdmap»


17
Как извлечь все ключи (или значения) из std :: map и поместить их в вектор?
Это один из возможных способов выхода: struct RetrieveKey { template <typename T> typename T::first_type operator()(T keyValuePair) const { return keyValuePair.first; } }; map<int, int> m; vector<int> keys; // Retrieve all keys transform(m.begin(), m.end(), back_inserter(keys), RetrieveKey()); // Dump all keys copy(keys.begin(), keys.end(), ostream_iterator<int>(cout, "\n")); Конечно, мы также можем извлечь все значения …
246 c++  dictionary  stl  stdmap 

12
В картах STL лучше использовать map :: insert, чем []?
Некоторое время назад у меня была дискуссия с коллегой о том, как вставить значения в карты STL . Я предпочел, map[key] = value; потому что это естественно и понятно для чтения, тогда как он предпочитал map.insert(std::make_pair(key, value)) Я просто спросил его, и никто из нас не может вспомнить причину, по …
201 c++  stl  map  stdmap 

9
Какой способ вставки на карту является предпочтительным / идиоматическим?
Я выделил четыре разных способа вставки элементов в std::map: std::map<int, int> function; function[0] = 42; function.insert(std::map<int, int>::value_type(0, 42)); function.insert(std::pair<int, int>(0, 42)); function.insert(std::make_pair(0, 42)); Какой из них предпочтительный / идиоматический? (А есть ли другой способ, о котором я не подумал?)
113 c++  stl  insert  stdmap  std-pair 

8
std :: map insert или std :: map find?
Предполагая карту, на которой вы хотите сохранить существующие записи. В 20% случаев вводимая вами запись - это новые данные. Есть ли преимущество в выполнении std :: map :: find, а затем std :: map :: insert с использованием этого возвращенного итератора? Или быстрее попытаться вставить, а затем действовать в зависимости …
93 c++  optimization  stl  stdmap 

6
Как обновить std :: map после использования метода find?
Как обновить значение ключа std::mapпосле использования findметода? У меня есть объявление карты и итератора, подобное этому: map <char, int> m1; map <char, int>::iterator m1_it; typedef pair <char, int> count_pair; Я использую карту для хранения количества вхождений символа. Я использую Visual C ++ 2010.
92 c++  map  stl  stdmap 


4
Как я могу создать собственный компаратор для карты?
typedef map<string, string> myMap; При вставке новой пары в myMap, он будет использовать ключ stringдля сравнения своим собственным компаратором строк. Можно ли отменить этот компаратор? Например, я хотел бы сравнить ключ stringпо длине, а не по алфавиту. Или есть другой способ отсортировать карту?
87 c++  stl  stdmap 
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.