我有一个非常性能密集的应用程序,我真的想避免制作一个保存在unordered_map中的字符串的副本。我希望能够做的一个例子是将该字符串与本地字符串变量进行比较。是否可以访问unordered_map中的元素而不复制它的副本?
例如,
unordered_map<string,string> X;
string test = "def";
X["abc"] = test;
//other operations here...
string* map_entry = X.???; //some operation that doesn't make a copy of the string
size_t map_entry_size = (*map_entry).size();
for (size_t i = 0; i < map_entry_size; ++i)
{
if ((*map_entry)[i] != test[i])
throw 1;
}
这是可能的,或者必须我一直在使用它之前使元素的副本?
不清楚为什么你认为你需要复制。 'operator []'返回一个引用,而不是一个副本... – user463035818
取消引用迭代器返回一个引用,所以你没有复制那里。 – Jarod42
无关:如果你曾经需要避免复制使用参考而不是指向安全的指针,你一些不必要的头痛 – user463035818