我需要记住地图的特定元素,以便稍后在代码中访问它们。我的地图是:
map<double, map<string, double>> buf;
地图很大,我需要知道有效的&#34;内存消耗较少&#34;在循环过程中从这个地图复制一些元素的方法。
存储指针或迭代器是否更好?我该怎么做?
先谢谢。
UPD: 地图大约是5000个元素。 实际上我现在从迭代器中复制它们,但想知道是否有更好的方法
UPD2: 我创建了一个迭代器向量,并能够存储上面映射的迭代器。但这对我来说是正确的方式吗?我只需要从地图中选择特定的元素。
vector<map<double, map<string, double>>::const_iterator> tbuf;
答案 0 :(得分:0)
考虑到您的地图值是地图本身,复制这些内部地图将非常昂贵。使用指向内部映射的指针比使用迭代器更便宜略微,但两者都比复制内部地图便宜得多。
但是,无论您使用指针还是迭代器,请确保它们不会失效。引用的内部地图必须保持活跃。