Я использовал для создания функции, которая сохраняет объект json в карту строк (ключ) и вектор строк (значение), используя этот код:
#include <vector>
#include <map>
using VMap = std::map<std::string, std::vector<std::string> >;
VMap fileMapper (ptree const& config)
{
VMap mymap ;
for (auto& entry : config) {
std::vector<std::string> val;
for (auto& element : boost::make_iterator_range(entry.second.equal_range(""))) {
val.push_back(element.second.get_value<std::string>());
}
mymap.insert(std::pair<std::string, std::vector<std::string>>(entry.first,val));
}
return mymap;
}
Я ищу сделать то же действие, используя набор строк вместо вектора строк, я попытался сделать небольшую модификацию кода:
#include <map>
#include <set>
using VMap = std::map<std::string, std::set<std::string> >;
VMap fileMapper (ptree const& config)
{
VMap mymap ;
for (auto& entry : config) {
std::set<std::string> val;
for (auto& element : boost::make_iterator_range(entry.second.equal_range(""))) {
val.push(element.second.get_value<std::string>());
}
mymap.insert(std::pair<std::string, std::set<std::string>>(entry.first,val));
}
return mymap;
}
И у меня есть эта ошибка: класс std :: set> 'не имеет члена с именем' pu sh '
Есть идеи?