c++ - 一旦到达终点,返回到 Vector 的顶部 C++

标签 c++ vector

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

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;    
}
}

最佳答案

这不是迭代器的用例。我建议使用受 vector 长度模数限制的通用索引。

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

关于c++ - 一旦到达终点,返回到 Vector 的顶部 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55061527/

相关文章:

c++ - 读取 mifare 卡 block 并将其 block 的一部分与一些文本进行比较

c# - 在 C# 中保留 C++ 指针是否安全?

r - 括号使向量不同。矢量表达式究竟是如何计算的?

c++ - 无法使用运算符 [] 访问二维堆 vector 的元素

c++ - 带有计数器 C++ 的字符串 vector

c++ - vector c++ vector 的大小

r - 更新 data.table 中的向量

c++ - 网络字节顺序和字节序问题

c++ - 从字符串中获取键/值对并存储在映射中

c++ - 如何从不同程序的窗口获取窗口位置/大小?