[英]How to check if **any** element exists in an `std::vector` at a given index
我有一個像這樣的std::vector
std::vector<std::pair<T,T>> xyz
。 xyz
的長度為 10 ,另一個 function 恰好用std::pair<T,T>
填充 3 個點,例如 4、6 和 8。 在遍歷向量時,我想知道非空點在哪里,以便我可以進一步使用std::pair<T,T>
s。
我想我可以使用c++17
的std::optional<>
但我正在使用c++14
。 有什么方法可以找出在 c++14 中不為空的std::vector
中的點。
從 function 分配后,向量看起來像這樣
index value
0:
1:
2:
3:
4: <7,8>
5:
6: <9,2>
7:
8: <8,6>
9:
我想遍歷上面的向量,只說打印std::pairs
如果你不對你的數據結構做一些工作,你就不能這樣做,因為向量中的每個元素都被初始化了。
我認為最簡單和最快的方法是存儲一個相同大小的std::vector<bool>
來存儲一個元素是否不僅被初始化,而且稍后也被“修改”。
如果您擔心可能忘記設置另一個向量,請將它們綁定在一起:
std::vector<std::pair<std::pair<int, int>, bool>> a;
如果你仍然覺得這太難看,你可能不得不實現自己的簡單optional
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.