- 數組是內存空間連續存儲、相同類型數據的集合。
- 遍歷方式:下標索引
- 下標:從 0 開始
- 數組的元素不能刪除,只能覆蓋
定義一維數組:
int arr0[10];
int arr1[10] = { 100, 90,80,70,60,50,40,30,20,10 };
int arr2[ ] = { 100,90,80,70,60,50,40,30,20,10 };cout << "整個數組所占內存空間為: " << sizeof(arr1) << endl;
cout << "每個元素所占內存空間為: " << sizeof(arr1[0]) << endl;
cout << "數組的元素個數為: " << sizeof(arr1) / sizeof(arr1[0]) << endl;
二維數組:
int arr[2][3];
int arr1[2][3] = {{1,2,3},{4,5,6}};
int arr2[2][3] = {1,2,3,4,5,6};
int arr3[ ][3] = {1,2,3,4,5,6};
int arr1[2][3] = {{1,2,3},{4,5,6}};
cout << "二維數組大小: " << sizeof(arr1) << endl;
cout << "二維數組一行大小: " << sizeof(arr1[0]) << endl;
cout << "二維數組元素大小: " << sizeof(arr1[0][0]) << endl;cout << "二維數組行數: " << sizeof(arr1) / sizeof(arr1[0]) << endl;
cout << "二維數組列數: " << sizeof(arr1[0]) / sizeof(arr1[0][0]) << endl;
容器-vector:
操作 | 操作 |
---|---|
創建 | vector<int> vec = {1,2,3,4,5,6} |
訪問 | 使用下標 [ ] 或at() 訪問元素 |
返回指向容器中第一個元素的迭代器 | vec.begin() |
返回指向容器最后一個元素所在位置后一個位置的迭代器 | vec.end() |
尾插 | vec.push_back(7) |
插入 | vec.insert(7) |
尾刪 | vec.pop_back() |
返回第一個元素 | int x = vec.front() |
返回最后一個元素 | int y = vec.back() |
元素個數 | int size = vec.size() |
刪除元素 | vec.erase(position) |
清空 | vec.clear() |
重新指定大小 | vec.resize(8) |
排序 | 使用sort函數:sort(vec.begin(), vec.end()) |
反轉 | 使用reverse函數:reverse(vec.begin(), vec.end()) |
#include <vector>
vector<int> vec;
vector<int> vec1(5);// 包含5個元素,默認為0
vector<int> vec2(5, 10);//包含5個元素,每個值為10
vector<int> vec3 = {1,2,3,4,5,6};// 尾插
vec.push_back(7);// 將 7 添加到 vec1的末尾// 尾刪
vec.pop_back();// 訪問元素
int x = vec[0]; // 訪問第1個元素
int y = vec.at(1); // 訪問第2個元素// 插入元素
vec.insert(vec.begin(), 3);//指定位置插入元素
vec.insert(vec.begin(), 3, 10); // 指定位置 vec.begin() 插入 3 個值為 10 的元素
vec.insert(vec.begin(), vec.begin(), vec.end()); // 從vec的頭部開始,連續插入vec區間[begin, end]的所有元素// 獲取元素數量
int size = vec.size();// 調整vector的大小
vec.resize(10);// 將 vec調整為元素個數為10個的vector// 刪除元素
vec.erase(3); // 刪除第4個元素// 清空vector
vec.clear();// 迭代訪問
for(auto it = vec.begin(); it != vec.end(); ++it){cout << *it << " ";
}// 二維操作
vector<vector<int>> vec;
vector<vector<int>> vec(5, vector<int>(3));//定義一個5行3列,默認初始化為0的二維vector
vector<vector<int>> vec(5, vector<int>(3,1));//定義一個5行3列值全為1的二維vectorint rows = vec.size(); // 行數
int cols = vec[0].size(); // 列數(假設非空);或 vec[i].size()