【发布时间】:2015-06-04 08:36:19
【问题描述】:
我想在 c++ 中使用iterator 对map 的前四个元素求和。
map<int, string> numbers; //making object of map
numbers.insert(pair<int, string>(2,"two")); //inserting values into map
numbers.insert(pair<int, string>(3,"two")); //inserting values into map
numbers.insert(pair<int, string>(4,"two")); //inserting values into map
numbers.insert(pair<int, string>(7,"two")); //inserting values into map
numbers.insert(pair<int, string>(5,"two")); //inserting values into map
map<int, string>::iterator it;
it=numbers.begin();
for( ;it!=numbers.begin()+4; it++){ //problem is here and in body
}
【问题讨论】:
-
您的代码会导致大量复制。从您的配对到地图的
value_type,这是完全不必要的转换。为什么不numbers.emplace(2, "two")? -
您遇到的是问题是什么?只是说“问题就在这里”而不告诉我们问题是什么并不能告诉我们太多。你有构建错误吗?运行时错误?出乎意料的结果?是你不知道如何添加的问题吗?不知道循环好不好?完全不同的东西?
标签: c++ dictionary iterator