【发布时间】:2016-07-23 17:22:19
【问题描述】:
有什么理由让它运作良好
vector<CalcToken*>* myVec; //assume this contains CalcToken
for(vector<CalcToken *>::iterator it = myVec->begin() ; it != myVec->end() ; advance(it,1)) {
cout<< (*it)->toString()<< " ";
}
这并没有让我得到任何回报?(advance(it,2))
for(vector<CalcToken *>::iterator it = myVec->begin() ; it != myVec->end() ; advance(it,2)) {
cout<< (*it)->toString()<< " ";
}
我想创建一个应该跳过某些元素的循环...,以下内容对我不起作用 it++、it++ 和 it+=2。
【问题讨论】:
-
你试过**it++吗?还有“以下内容不适合我”为什么它不工作??
-
它是打印出一些元素然后垃圾还是根本不起作用?
-
@bhuvan-venkatesh 第一个可以很好地打印元素,第二个根本不打印。即使我在那之后在循环之外打印一些东西,它也不会被打印出来。 FirstStep,我不知道,当我使用它们时它不会打印任何东西。
-
可能它仍然在缓冲区中(cout 被缓冲)并且在未定义的行为发生之前缓冲区没有被刷新。
标签: c++ vector iterator stdadvance