c++ - 一旦到达终点,就返回到 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;
}
}
解决方案
这不是迭代器的用例。我建议使用以向量长度为模的通用索引。
int j = 0;
for (int i = 0; j < 20 ; i = (i + rand() % 6) % vectorTest.size(), j++) {
cout << vectorTest[i] << endl;
}
推荐阅读
- node.js - npm install 并在 node-gyp 重建时失败,使用 ```gyp: No Xcode or CLT version detected!``` 由新的 macos catalina 更新引起
- deepsecurity - 通过 API 导入 XML 策略租户
- android - 在 ExpansionPanelList 中使用 Provider
- sas - 在SAS中按组选择字符串的模式
- docker - docker + nginx + ssl 在开发环境中失败
- amazon-web-services - AWS Cloudformation 模板条件和自动扩展配置
- guidewire - 启用排序不适用于 UI 上的 PCF 列
- python - 在绝对路径中找不到文件
- reactjs - 在组件外访问 React-Native State 值
- javascript - 将属性名称传递给通用方法以获取不同的值