[英]How to find next element in a vector C++
我在 C++ 程序中使用了一個vector
,我想在循環時找到vector
的下一個元素,類似於它如何使用鏈表創建下一個節點。 我打算使用這個循環來檢查vector
中的當前元素與下一個元素是否相同。
for (auto i = v.begin(); i < v.end()-1; ++i) {
if (i[0] == i[1]) {
// do stuff
}
}
你可以只使用這個循環:
for (size_t i = 0; i < v.size()-1; ++i) {
if (v[i] == v[i+1] { // if current element equals next element
... // do something
}
}
簡單
您可以使用std::next 。
// Example copied from page linked to.
#include <iostream>
#include <iterator>
#include <vector>
int main()
{
std::vector<int> v{ 3, 1, 4 };
auto it = v.begin();
auto nx = std::next(it, 2);
std::cout << *it << ' ' << *nx << '\n';
}
// Output:
// 3 4
如果您將向量用作循環列表(即,您將第一個元素視為最后一個元素的“下一個”),則可以對向量的長度使用模運算符。
例如:
int getNext(std::vector<int> vect, size_t i) {
return vect[ (i+1) % v.size() ];
}
如果您需要以“循環”方式選擇下一個元素,尤其是在循環之外,則此解決方案很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.