复制地图元素的正确方法

时间:2015-06-02 08:47:38

标签: c++ dictionary

我需要记住地图的特定元素,以便稍后在代码中访问它们。我的地图是:

map<double, map<string, double>> buf;

地图很大,我需要知道有效的&#34;内存消耗较少&#34;在循环过程中从这个地图复制一些元素的方法。

存储指针或迭代器是否更好?我该怎么做?

先谢谢。

UPD: 地图大约是5000个元素。 实际上我现在从迭代器中复制它们,但想知道是否有更好的方法

UPD2: 我创建了一个迭代器向量,并能够存储上面映射的迭代器。但这对我来说是正确的方式吗?我只需要从地图中选择特定的元素。

vector<map<double, map<string, double>>::const_iterator> tbuf;

1 个答案:

答案 0 :(得分:0)

考虑到您的地图值是地图本身,复制这些内部地图将非常昂贵。使用指向内部映射的指针比使用迭代器更便宜略微,但两者都比复制内部地图便宜得多。

但是,无论您使用指针还是迭代器,请确保它们不会失效。引用的内部地图必须保持活跃。