[英]How can I check if all the elements of a vector are within another vector in Eigen c++?
[英]C++: Can I define vector within another vector?
在 C/C++ 純數組中,您可以在另一個數組中定義一個數組,例如:
int a[5];
int *p = &a[1];
所以如果你改變p[0]
它會影響a[1]
等等。 向量中是否有類似的機制?
vector<int> a(5, 0);
?
你的第一個例子
int a[5];
int *p = &a[1];
沒有在另一個數組中定義一個數組,它只創建一個指向現有數組中元素的指針。 對於像std::vector
這樣的標准容器,可以通過使用迭代器來實現相同的目標:
vector<int> a(5, 0); // a = [0, 0, 0, 0, 0]
auto iterator = a.begin() + 1; // "points" to a[1]
*iterator = 2; // a = [0, 2, 0, 0, 0]
迭代器廣泛用於標准庫和提供對容器(子)范圍的訪問的首選解決方案。
如果您可以使用 C++20 或更高版本,則可能需要查看std::span
。
完全相同的代碼int *p = &a[1];
如果a
也是向量,則有效。
但是真的不推薦。 它甚至比使用數組更糟糕,因為向量可以重新分配,並且您的指針將失效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.