#include <iostream>
#include <vector>
using namespace std;
#define ARR_CAPACITY 10
vector<int> arr(10, 0);
vector<int> tmpArr = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
void TraverseArray(vector<int> &arr);
void InitArr(vector<int> &arr);
void DeleteData();
void AddData();
void GetData();
void TraverseData();
void AssignData();
int main() {
InitArr(arr);
TraverseData();
}
void TraverseArray(vector<int> &arr) {
int loopTime = arr.size();
for (int i = 0; i < loopTime; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
void InitArr(vector<int> &arr) {
cout << "重新初始化数组arr" << endl;
arr.resize(ARR_CAPACITY);
int loopTime = arr.size();
for (int i = 0; i < loopTime; i++) {
arr[i] = i;
}
TraverseArray(arr);
cout << endl;
}
void DeleteData() {
cout << "pop_back() erase() clear() resize() 删除元素" << endl;
arr.pop_back();
TraverseArray(arr);
arr.erase(arr.begin() + 2);
TraverseArray(arr);
arr.erase(arr.begin() + 2, arr.begin() + 6);
TraverseArray(arr);
arr.resize(1);
TraverseArray(arr);
arr.clear();
TraverseArray(arr);
}
void AddData() {
cout << "push_back() insert()增加元素" << endl;
arr.push_back(11);
TraverseArray(arr);
arr.insert(arr.begin(), 8);
TraverseArray(arr);
arr.insert(arr.begin() + 2, 100);
TraverseArray(arr);
arr.insert(arr.end(), 3, 1);
TraverseArray(arr);
arr.insert(arr.end(), tmpArr.begin(), tmpArr.end());
TraverseArray(arr);
}
void GetData() {
cout << "at() 获取指定位置的元素" << endl;
cout << arr.at(3) << endl << endl;
cout << "begin() 和 end() 获得数组元素的指针" << endl;
cout << *arr.begin() << " " << *(arr.begin() + 1) << " ";
cout << *arr.end() << endl << endl;
cout << "front() 和 back() 获取数组元素的引用" << endl;
cout << arr.front() << " " << arr.back() << " " << endl << endl;
cout << "size() vector实际存储的元素个数" << endl;
cout << arr.size() << endl << endl;
cout << "capacity() vector实际的空间大小" << endl;
cout << arr.capacity() << endl << endl;
cout << "max_size() vector最大的空间大小" << endl;
cout << arr.max_size() << endl << endl;
}
void TraverseData() {
cout << "for 利用iterator reverse_iterator auto 遍历数组元素" << endl;
int loopTime = arr.size();
for (int i = 0; i < loopTime; i++) {
cout << arr[i] << " ";
}
cout << endl;
for (vector<int>::iterator iter = arr.begin(); iter != arr.end(); ++iter) {
cout << *iter << " ";
}
cout << endl;
for (auto iter = arr.cbegin(); iter != arr.end(); iter++) {
cout << *iter << " ";
}
cout << endl;
for (vector<int>::reverse_iterator iter = arr.rbegin(); iter != arr.rend(); iter++) {
cout << *iter << " ";
}
cout << endl;
for (auto iter = arr.crbegin(); iter != arr.crend(); iter++) {
cout << *iter << " ";
}
cout << endl;
}
void AssignData() {
}