Как скопировать все элементы вектора, который представляет собой структуру элементов, в набор ,Сохранение из std :: vector to std :: set где vector содержит структуру, но std :: set содержит только один элемент из структуры
struct info
{
std::string code;
std::string curDate;
int iVar;
};
std::vector<info> infVect; // Load data into the vector from the database
std::set<std::string> uniqueCodes;
for (int i = 0; i < infVect.size() ; ++i)
uniqueCodes.insert(infVect[i].code);
Есть ли более быстрый способ хранения элементов из вектора для установки без повторения каждого элемента в цикле?
Примечание:
std::set<std::string> uniqueCodes(infVect.begin(), infVect.end())
, будет работать, если infVect
был только код. Но infVect
- вектор объектов.
Нет, нет более быстрого способа, чем посещение каждого элемента. Проверьте [std :: transform] (http://en.cppreference.com/w/cpp/algorithm/transform). – jrok