У меня есть stl unordered_map, и я хотел бы хранить ссылки на элементы на этой карте. Я бы хотел, чтобы не было дублирующих ссылок. Я думал, что могу создать набор итераторов, указывающих на элементы. Для одного я не был уверен, что это узнает, но даже в этом случае у меня были некоторые длинные ошибки шаблона, которые, по-моему, сводились к тому, что для итераторов не было оператора сравнения <.STL набор итераторов карт
Затем я попробовал неупорядоченный набор компиляции с g ++ -std = C++ 0x, но получил страницы ошибок.
Как достичь этой цели?
#include <set>
#include <unordered_map>
#include <unordered_set>
int main() {
typedef std::unordered_map<int, float> umap;
umap my_map;
umap::const_iterator itr;
for (int i=0;i<10000000;i++) {
my_map[i] = float(i);
}
umap::iterator my_it1 = my_map.find(43);
umap::iterator my_it2 = my_map.find(44);
umap::iterator my_it3 = my_map.find(44);
std::unordered_set<umap::iterator> my_its;
my_its.insert(my_it1);
my_its.insert(my_it2);
my_its.insert(my_it3);
return 0;
}
Отлично подходит для компиляции. Думаю об этом. Есть много полезных алгоритмов набора, таких как пересечение, которые я могу использовать напрямую и просто с нормальным набором. Есть ли какая-либо функция сравнения, которую я могу реализовать, чтобы я мог использовать их, не заботясь о заказе. – zenna