我正在尝试迭代对的向量,我需要通过这样做来增加对中的一个元素:
for (std::vector<std::pair<Process *, int> >::const_iterator it = process.begin(); it != process.end(); it++) {
if (queue.size() == 0)
break;
while (queue.size() > 0 && it->second < threadsPerProcess * 2) {
it->first->send(queue.front());
queue.pop_front();
++it->second; // value i am trying to increment
}
}
有人可以告诉我我做错了吗?
答案 0 :(得分:1)
改变这个:
for (std::vector<std::pair<Process *, int> >::const_iterator it = process.begin(); it != process.end(); it++) {
到此:
for (std::vector<std::pair<Process *, int> >::iterator it = process.begin(); it != process.end(); it++) {
以便您实际修改正在迭代的元素。
答案 1 :(得分:0)
如果修改内容,则不应使用const_iterator
,请使用简单的iterator
。