首页 > 解决方案 > 一旦到达终点,就返回到 Vector 的顶部 c++

问题描述

我目前有一个通过向量随机递增的迭代器,我希望能够在到达终点后返回到向量的顶部。我在随机生成器中放置了一个种子,所以我有相同的序列。显然,此时矢量刚刚超出范围

int main() 
{
vector<int> vectorTest = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 
10, 11, 12, 13, 14, 15, 16,
    17, 18, 19, 20};  

vector <int>::iterator it;

for (it = vectorTest.begin(); it != vectorTest.end(); it = it + rand() % 6)
{ 
    cout << *it << endl;    
}
}

标签: c++vector

解决方案


这不是迭代器的用例。我建议使用以向量长度为​​模的通用索引。

int j = 0;
for (int i = 0; j < 20 ; i = (i + rand() % 6) % vectorTest.size(), j++) {
    cout << vectorTest[i] << endl;
}

推荐阅读