C++ vector獲取(存取)元素

2020-07-16 10:04:28
可以在方括號中使用索引,為現有元素設定值,或者只是通過表示式使用它的值。例如:
std::vector<double> values (20);
values[0] = 3.14159;
values[1] = 5.0;
values[2] = 2.0*values[0]*values[1];
vector 的索引從 0 幵始,這和標準陣列一樣。通過使用索引,總是可以存取到現有的元素,但是不能這樣生成新元素——需要使用 push_back()、insert()、emplace() 或 emplace_back()。當像這樣索引一個 vector 時,和陣列容器一樣,並沒有檢查索引值,所以當索引可能越界時,應該通過 at() 函數去使用這個元素。

vector 的成員函數 front() 和 back() 分別返回序列中第一個和最後一個元素的參照,例如:
std::cout << values.front () << std::endl; // Outputs 3.14159
因為成員函數 front() 和 back() 返回的是參照,所以它們可以出現在賦值運算子的左邊。
values.front() = 2.71828;
成員函數 data() 返回一個指向陣列的指標,它在內部被用來儲存元素。例如:
auto pData = values.data();
pData 是 double* 型別,一般來說,data() 返回 vector<T> 容器的 T* 型別的值。必要時可以使用這個函數。