使用隨機訪問迭代器,可以通過簡單地執行iter + = n然後使用container.end()而不是!= container.end()來更改跨度長度。作爲循環結束條件:使用非隨機訪問迭代器的非單元迭代器跨度
#include <iostream>
#include <vector>
int main(int argc, char *argv[])
{
typedef std::vector<float> VectorType;
typedef VectorType::const_iterator IteratorType;
VectorType v;
for(unsigned int i = 0; i < 11; ++i)
{
v.push_back(i);
}
for(IteratorType iter = v.begin(); iter < v.end(); iter += 2)
{
std::cout << " " << *iter;
}
return 0;
}
然而兩者+ = 2和< iter.end()似乎是未定義類似的std ::集。想要遍歷一個只訪問每個其他元素(子採樣)的集合似乎是合理的,不是嗎?有沒有另一種方法來做到這一點?
我在iPad上,所以我無法用代碼進行實驗,但我只是想知道是否使用非const迭代器來試用這個代碼? – 2012-02-22 00:46:04