SKY外语计算机学习
标题:
vector容器的所有成员函数用法(STL)
[打印本页]
作者:
wangbeacon
时间:
2012-6-11 10:21
标题:
vector容器的所有成员函数用法(STL)
本帖最后由 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元素互换
*/
复制代码
欢迎光临 SKY外语计算机学习 (http://skywj.com/)
Powered by Discuz! X2.5