C++vector容器使用
程序员文章站
2024-03-17 23:41:16
...
简介
Vectors 包含着一系列连续存储的元素,其行为和数组类似。访问Vector中的任意元素或从末尾添加元素都可以在常量级时间复杂度内完成,而查找特定值的元素所处的位置或是在Vector中插入元素则是线性时间复杂度。
实验
#include <iostream>
#include <vector>
using namespace std;
/**
* vector容器:
* 动态数组 单口容器
* 数据结构是一张线性表,连续内存
*
* 1,迭代器:
* 正向迭代器 begin(), end()
* 反向迭代器 rbegin(),rend()
*
* 2,加入/删除
* 在尾部插入 push_back() 时间O(1)
* 删除尾部元素 pop_back() 时间O(1)
* 在i位置之前插入 insert() 时间O(n) 3个重载
* 1, iterator insert( iterator loc, const TYPE &val ); 在指定位置loc前插入值为val的元素,返回指向这个元素的迭代器,
* 2, void insert( iterator loc, size_type num, const TYPE &val ); 在指定位置loc前插入num个值为val的元素
* 3, void insert( iterator loc, input_iterator start, input_iterator end ); 在指定位置loc前插入区间[start, end)的所有元素
*
* 3,交换两个容器 swap (其实是指针交换)
*
* 4,初始化
* vector<T> vtr() ...
*
* 5,改变个数大小 resize()
*
* 6,第一个和最后一个元素 front(),back()
*
* 7,运算符重载进行访问元素不抛异常,而用成员函数会抛异常
*
* 8,一般来说支持中括号的运算符的访问可以支持迭代器随机访问! vector支持!
*/
int main() {
int arr[] = {0,1,2,4,5,6,7,8};
vector<int > vtr (arr, arr+8); //迭代器指针 初始化
for (vector<int >::iterator it = vtr.begin(); it != vtr.end(); it++) {
cout << *it << " ";
}
cout << endl;
cout << "at = " << vtr.at(3) << endl;
cout << "[] = " << vtr[3] <<endl;
cout << endl;
cout << "vector size = " << vtr.size() << endl;
cout << "vector Memory size = " << vtr.capacity() << endl;
cout << endl;
try {
cout<< vtr[8] << endl; //程序直接崩掉
cout<< vtr.at(8) << endl; //抛异常
}catch(...) {
cout << "throw exception!" << endl;
}
return 0;
}
上一篇: Docker之容器使用
下一篇: java 设计模式--工厂模式