我需要记住地图的特定元素,以便稍后在代码中访问它们。我的地图是:
map<double, map<string, double>> buf;
该地图非常庞大,我需要了解一种有效的“较少内存消耗”的方式,可以在循环过程中从该地图中复制一些元素。
存储指针或迭代器更好吗?我该怎么做?
提前致谢。
UPD:地图大约有5000个元素。实际上,我现在是从迭代器复制它们的,但是想知道是否有更好的方法
UPD2:我创建了一个迭代器向量,并能够存储以上地图的迭代器。但这对我来说是正确的方法吗?我只需要从地图中选择特定的元素。
vector<map<double, map<string, double>>::const_iterator> tbuf;
考虑到您的地图值本身就是地图,因此复制这些内部地图将非常昂贵。这可能稍微便宜地使用指针指向内部的地图,而不是使用迭代器,但两者不是复制内部地图显著便宜。
但是,无论您使用指针还是迭代器,请确保它们没有失效。引用的内部地图必须保持活动状态。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句