vector的一些概述
- vector具有内存自动管理功能,对于元素的插入和删除,可动态调整所占的内存空间。
- #include
创建vector对象
vector<int> v;
vector<double> v(10);
- 创建一个具有n个元素的向量容器对象,每个元素具有指定的初始值
vector<double> v(10. 8.6);
分割线
#include <iostream>
#include <vector>
using namespace std;
vector<int> v;
访问vector元素方法
cout << v[0] << endl;
vector<int>::iterator it = v.begin();
常用方法
v.push_back(10);
v.insert(it, 20);
v.erase(it);
v.erase(it, it+5);
v.erase(v.begin(), v.end());
v.clear();
time_t nSize = v.size();
bool isEmpty = v.empty();
使用 algorithm 库中的sort()和 reverse()进行排序和反向排列
sort(v.begin(), v.end());
sort(v.begin(), v.end(), compare);
reverse(v.begin(), v.end());
reverse(it, it+5);
整体展现代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> v;
int main()
{
for (int i = 0; i < 10; ++i)
v.push_back(i);
cout << "数组访问: ";
for (int i = 0; i < v.size(); ++i)
cout << v[i] << " ";
cout << endl;
cout << "迭代器访问: ";
for (vector<int>::iterator it = v.begin(); it != v.end(); ++it)
cout << *it << " ";
cout << endl;
v.insert(v.begin(), 20);
cout << "插入元素后: ";
for (vector<int>::iterator it = v.begin(); it != v.end(); ++it)
cout << *it << " ";
cout << endl;
v.erase(v.begin());
cout << "删除首个元素后: ";
for (vector<int>::iterator it = v.begin(); it != v.end(); ++it)
cout << *it << " ";
cout << endl;
v.erase(v.end() - 5, v.end());
cout << "删除最后五个元素后: ";
for (vector<int>::iterator it = v.begin(); it != v.end(); ++it)
cout << *it << " ";
cout << endl;
cout << "向量大小: " << v.size() << endl;
if (!v.empty()) cout << "向量不为空" << endl;
reverse(v.begin(), v.end());
cout << "反向排列后: ";
for (vector<int>::iterator it = v.begin(); it != v.end(); ++it)
cout << *it << " ";
cout << endl;
sort(v.begin(), v.end());
cout << "排序后: ";
for (vector<int>::iterator it = v.begin(); it != v.end(); ++it)
cout << *it << " ";
cout << endl;
v.clear();
if (v.empty()) cout << "清除所有,向量为空" << endl;
return 0;
}