增加对矢量的值

时间:2016-04-23 17:05:15

标签: c++ vector iterator const

我正在尝试迭代对的向量,我需要通过这样做来增加对中的一个元素:

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
        }
 }
有人可以告诉我我做错了吗?

2 个答案:

答案 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