簡體   English   中英

如何在向量 C++ 中找到下一個元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM