- 生肖
- 龙
- 星座
- 天秤座
- 性别
- 男
- 积分
- 146
- 积分
- 174
- 精华
- 2
- 阅读权限
- 20
- 注册时间
- 2012-6-10
- 最后登录
- 2019-6-18
- 帖子
- 8
![Rank: 2](static/image/common/star_level2.gif)
- 生肖
- 龙
- 星座
- 天秤座
- 性别
- 男
|
本帖最后由 sky_yx 于 2015-12-30 14:18 编辑
vector 动态数组容器, 你会用吗? 你知道它的所有用法吗.
在下面:- //动态数组容器
- #include <vector>
- using namespace std;
- int _tmain(int argc, _TCHAR* argv[])
- {
- vector<int> c;
- vector<int> c2;
- //vector<int>::reference i; 即为 int i;
- int i;
- //int ai[] = {0,1,2,3,4,5};
- //vector<int> c3(ai,ai+sizeof(ai));//参数一:首地址;参数二:最后元素的后一个字节
- //添加元素
- c.push_back(1); //添加到结尾
- c.push_back(2);
- c.push_back(3);
- //赋数据值
- c2.assign(c.begin(),c.end() - 1);//将c.begin(),c.end() - 1区间中的数据赋值给c2
- c.assign(3,100); //将3个100赋值给c
- //遍历元素
- //c.begin() 传回迭代器中的第一个数据地址
- //c.end() 指向迭代器中末端元素的下一个,指向一个不存在元素
- for(vector<int>::iterator p = c.begin();p != c.end() ;p++)
- {
- printf("%d\n",*p);
- }
- //取出索引位置的元素
- i = c.at(1);
- printf("%d\n",i);
- //传回最后一个数据,不检查这个数据是否存在
- i = c.back();
- printf("%d\n",i);
- //传回第一个数据
- i = c.front();
- //返回当前容量
- int iCount = c.capacity();
- printf("%d\n",iCount);
- //移除容器中所有数据
- c.clear();
- //判断容器是否为空
- bool bIsEmpty = c.empty();
- //删除指定位置的数据,传回下一个数据的位置
- c.erase(c.begin() + 1);
- //删除指定区间的数据,传回下一个数据的位置
- c.erase(c.begin() + 1,c.end() - 2);
- //使用构造函数返回一个拷贝
- vector<int> c3(c.get_allocator());
- //在指定位置插入一个数据拷贝,传回新数据位置
- c.insert(c.begin() + 1,1234);
- //在指定位置插入指定数个数据,无返回值
- c.insert(c.begin() + 2,5,1234);
- //在指定位置插入指定范围数据.无返回值
- c.insert(c.begin() + 3,c2.begin(),c2.end());
- //返回容器中最大数据的数量
- iCount = c.max_size();
- //删除最后一个数据
- c.pop_back();
- //在尾部加入一个数据
- c.push_back(123);
- //重新指定队列的长度
- c.resize(3);
- //返回容器中实际数据的个数
- c.size();
- //将两个容器的元素互换
- c.swap(c2);
- return 0;
- }
- /*
- c.assign(beg,end) c.assign(n,elem) 将(beg; end)区间中的数据赋值给c。将n个elem的拷贝赋值给c。
- c.at(idx) 传回索引idx所指的数据,如果idx越界,抛出out_of_range。
- c.back() 传回最后一个数据,不检查这个数据是否存在。
- c.begin() 传回迭代器中的第一个数据地址。
- c.capacity() 返回容器中数据个数。
- c.clear() 移除容器中所有数据。
- c.empty() 判断容器是否为空。
- c.end() //指向迭代器中末端元素的下一个,指向一个不存在元素。
- c.erase(pos) // 删除pos位置的数据,传回下一个数据的位置。
- c.erase(beg,end) 删除[beg,end)区间的数据,传回下一个数据的位置。
- c.front() 传回第一个数据。 get_allocator 使用构造函数返回一个拷贝。
- c.insert(pos,elem) //在pos位置插入一个elem拷贝,传回新数据位置
- c.insert(pos,n,elem) //在pos位置插入n个elem数据,无返回值
- c.insert(pos,beg,end) //在pos位置插入在[beg,end)区间的数据。无返回值
- c.max_size() 返回容器中最大数据的数量。
- c.pop_back() 删除最后一个数据。
- c.push_back(elem) 在尾部加入一个数据。
- c.rbegin() 传回一个逆向队列的第一个数据。
- c.rend() 传回一个逆向队列的最后一个数据的下一个位置。
- c.resize(num) 重新指定队列的长度。
- c.reserve() 保留适当的容量。
- c.size() 返回容器中实际数据的个数。
- c1.swap(c2)//将c1和c2元素互换
- */
复制代码
|
|