Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 复制地图元素的正确方法_C++_Dictionary - Fatal编程技术网

C++ 复制地图元素的正确方法

C++ 复制地图元素的正确方法,c++,dictionary,C++,Dictionary,我需要记住映射的特定元素,以便在代码中稍后访问它们。我的地图是: map<double, map<string, double>> buf; map-buf; 这个映射是巨大的,我需要知道在循环期间从这个映射复制一些元素的有效的“更少内存消耗”方法 存储指针或迭代器更好吗?我该怎么做 提前谢谢 UPD: 这张地图大约有5000个元素。 实际上我现在从迭代器复制它们,但我想知道是否有更好的方法 UPD2: 我创建了一个迭代器向量,并能够存储上述映射的迭代器。但这对我来说

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

map<double, map<string, double>> buf;
map-buf;
这个映射是巨大的,我需要知道在循环期间从这个映射复制一些元素的有效的“更少内存消耗”方法

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

提前谢谢

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

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

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

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


但是,无论您使用指针还是迭代器,都要确保它们没有失效。参考的内部地图必须保持活动状态。

请澄清您的问题。你现在用的是什么代码?你有什么问题?“巨大”是多少?为什么需要最高效的副本?存储指针或迭代器与复制元素有什么关系?@otibom稍微更新了我的帖子。事实上,我只是想知道一些正确的方法。复制迭代器对我来说没有问题,但无论如何。:)@stefaanv什么都没有。我需要这个只是为了“标记”特定的elements@MSalters,所以情况是:一些巨大的地图。我们需要标记此映射中的某些元素如何访问,以便稍后在代码中访问它们。我们可以通过存储double的键值向量或存储迭代器来实现。是吗?谢谢。存储指针的代码是什么?我认为这可以节省我
向量tbuf谢谢。我如何将回溯指针推到地图的特定元素上?@托马斯.Brg:你可能想重读C++教程——它只是代码> TBUF。PuthJuBead(和TyelEnMeLyYouWAY)。这在VS 2010代码> TBUF。