Что я делаю не так? Нужно просто написать функцию, которая значения из map переводит в set
#include <iostream>
#include <vector>
#include <set>
#include <string>
#include <map>
std::set<std::string> BuildMapValuesSet (const std::map<int, std::string>& mp){
std::set<std::string> s;
for(auto item : mp)
{
s.insert(item.first);
}
return s;
}
int main(){
std::set<std::string> values = BuildMapValuesSet({
{1, "odd"},
{2, "even"},
{3, "odd"},
{4, "even"},
{5, "odd"}
});
for (const std::string& value : values) {
std::cout << value;
}
}
Чтобы понять в чем проблема вам следует переписать вашу функцию без использования auto:
for(std::pair<const int, std::string> item : mp){
s.insert(item.second);
}
Теперь очевидно что item.first это ключ, а item.second это значение
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости