У меня есть следующие данные:
FolioA Name1 100
FolioA Name2 110
FolioA Name3 100
FolioB Name1 100
FolioB Name3 106
FolioC Name1 108
FolioC Name2 102
FolioC Name3 110
Я хочу вставлять только уникальные имена (например, Name1, Name2 и Name3, каждый раз) в
std::vector<std::string> name;
когда я перебираю данные.
Итак, у меня есть следующий код, в котором я сохранил данные на карте с именем test:
std::map<std::string, std::map<std::string, double> >test;
std::map<std::string, std::map<std::string, double > >::iterator it1 = test.begin(), end1 = test.end();
while (it1 !=end1) {
std::map<std::string, double>::iterator it2 = it1->second.begin(), end2=it1->second.end();
**name.push_back(it2->first);**
++it2;
}
++it1;
}
Но в настоящее время, вставляя данные в имя так, как у меня есть 3 экземпляра Name1, 2 Name2 и 3 Name3, что ожидается от моего кода. Как мне исправить это, чтобы иметь только уникальные имена.
vector
имен? Вместо этого я бы предложил использоватьset
имен. Если вам нужен вектор, вы все равно можете сначала вставить в набор, а затем переместить объекты вvector
с помощью перегрузки конструктора, которая занимаетiterator
s. - person Chad   schedule 30.04.2012