std::vector
是 C++ 標準庫提供的動態數組容器,它是一個能夠存儲任意類型的數據,並且能夠自動擴展和縮小容量的容器。
一、使用方法
使用 std::vector
首先需要包含頭文件 <vector>
:
#include <vector>
定義一個 std::vector
對象:
std::vector<int> vec; // 定義一個 int 類型的 vector 對象
向 std::vector
中添加元素:
vec.push_back(1); // 向 vector 中添加一個元素 1 vec.push_back(2); // 向 vector 中添加一個元素 2 vec.push_back(3); // 向 vector 中添加一個元素 3
遍歷 std::vector
中的元素:
for (auto it = vec.begin(); it != vec.end(); ++it) { std::cout << *it << " "; // 輸出 vector 中的元素 } // 輸出:1 2 3
二、容量操作
通過 std::vector
提供的容量操作,我們可以查詢和修改 vector 的容量信息。
查詢 vector 的容量信息:
std::cout << vec.size() << std::endl; // 輸出 vector 的元素個數 std::cout << vec.capacity() << std::endl; // 輸出 vector 的容量 std::cout << vec.empty() << std::endl; // 判斷 vector 是否為空
修改 vector 容量:
vec.resize(5); // 將 vector 的容量改為 5,未使用的元素初始化為默認值 vec.reserve(10); // 將 vector 的容量預留為 10,但 vector 的元素個數不變 vec.shrink_to_fit(); // 將 vector 的容量縮小到當前元素個數,節省不必要的空間
三、元素操作
通過 std::vector
提供的元素操作,我們可以對 vector 中的元素進行訪問、修改、添加和刪除等操作。
1. 訪問元素
使用 std::vector
提供的下標操作或迭代器操作訪問 vector 中的元素。
vec[0]; // 訪問 vector 中 index 為 0 的元素 vec.at(0); // 訪問 vector 中 index 為 0 的元素,越界時會拋出異常 vec.front(); // 返回 vector 的第一個元素 vec.back(); // 返回 vector 的最後一個元素
2. 修改元素
使用 std::vector
提供的下標操作或迭代器操作修改 vector 中的元素。
vec[0] = 4; // 修改 vector 中 index 為 0 的元素為 4 *vec.begin() = 5; // 修改 vector 中第一個元素為 5
3. 添加元素
使用 std::vector
提供的 push_back() 操作向 vector 中添加元素。
vec.push_back(4); // 向 vector 中添加一個元素 4
4. 刪除元素
使用 std::vector
提供的 erase() 操作刪除 vector 中的元素。
vec.erase(vec.begin() + 1); // 刪除 vector 中下標為 1 的元素 vec.pop_back(); // 刪除 vector 中的最後一個元素
四、注意事項
1. 對於大規模的數據處理,使用 std::vector
可能會佔用過多的內存。
2. 在循環中遍歷 vector 元素時,應該使用迭代器進行操作,避免下標訪問越界。
for (auto it = vec.begin(); it != vec.end(); ++it) { std::cout << *it << " "; // 輸出 vector 中的元素 }
3. 對 vector 進行擴容、縮容等操作時,可能會影響 vector 中元素在內存中的存儲位置。
五、總結
std::vector
提供了一個靈活的動態數組容器,能夠存儲任意類型的數據,並且能夠自動擴展和縮小容量。同時,通過 std::vector
提供的容量操作和元素操作,我們可以方便地查詢和修改 vector 的容量信息,以及對 vector 中的元素進行訪問、修改、添加和刪除等操作。使用 std::vector
需要注意的是內存佔用和迭代器操作。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/302707.html