элементы значение которых равны и как это сделать?
то есть у разных ключей int могут быть одинаковые значения? а по какому в этом случае из двух ключей удалять?
Да, второй по последовательности
std::map<int, std::string> m { {1, "test"}, {2, "test"}, {3, "test"}, }; std::unordered_set<std::string_view> s; for(auto it = m.begin(); it != m.end(); ) { auto&& value = it->second; auto[_, inserted] = s.insert(value); if( !inserted ) { it = m.erase(it); } else { ++it; } } for(auto&&[key, value] : m) { std::cout << key << "->" << value << std::endl; }
А какой смысл у auto&&?
.begin() не модно😄
это универсальная ссылка: int lvalue = 10; auto&& r1 = lvalue; // auto&& превратится в int& auto&& r2 = 10; // auto&& превратится в int&&
Ок, понял, спасибо
спасибо большое, буду разбираться
Обсуждают сегодня