C++ 容器整理

来源:互联网 发布:js search汉字 编辑:程序博客网 时间:2024/05/22 13:38

C++ 容器整理


一、容器

1.vector<T> 表示一个在必要时可自动增加容量的数组(自动增加的容量是当前容量的一半)。只能在矢量容器的末尾添加新元素。在矢量中间添加新元素会产生很大的开销。

vector<int> data;//创建一个容器(此时容量为0);

vector<int>data(100);//创建一个含有100个元素的矢量容器,全部初始化为0;

vector<int>data(100,-1);//创建一个含有100个元素的矢量容器,全部初始化为-1;

data[2]=999;//可以像数组那样使用;

data.push_back(99);   //矢量末尾添加一个新元素。

data.reserve(int n);   //n表示要容纳的最小元素个数,如果n小于当前容量,调用reserve()就没有用,否则提供可以容纳n个元素的内存。

data.begin();//返回第一个元素指针;

data.end();//返回最后一个元素的下一个位置的指针;

vector<int> values (data.begin(),data.end());//也可以使用begin()和end()来创建容器。

data.rbegin();//返回最后一个元素的指针;

data.rend();//指向第一个元素的下一个位置(即第一个元素前面的位置);

**注意:rbegin()和rend()是逆向迭代器;

data.size();//返回当前容器大小;

data.capacity();//返回当前容器的容量;

data.empty();//判断容器是否为空,为空则返回true,否则返回false;

data.resize(int n);//修改容器大小;如果n小于当前容量,则从容器末尾删除足够多的元素,使它减小到新的大小;如果n大于当前容量,则在容器末尾添加新元素将容量增加到n。(新元素全部为默认值。)

data.resize(int n,<T> t);// 为新元素赋值t;

data.at(int i);//返回容器中第i个元素。等价data[i];但是如果i超出合法范围,at()会抛出out_of_range异常,而下标操作符的结果不确定。

data.front();//返回第一个元素;

data.back();//返回最后一个元素;

data.pop_back();//删除最后一个元素;

data.clear();//删除所有元素;

data.insert(位置指针,要插入的元素);//插入一个新元素,系统开销很大。

data.insert(位置指针,插入元素个数n,要插入的元素);//插入n个新元素,系统开销很大。

data.insert(位置指针,输入迭代器首位置,输入迭代器末位的下一个位置);//插入元素序列。

data.erase(位置指针);//删除位置指针的元素;

data.erase(迭代器首位置,迭代器末位的下一个位置);//删除元素序列

data1.swap(data2);//交换data1和data2.(data1和data2必须同类型);

data.assign(迭代器首位置,迭代器末位的下一个位置);//删除data原内容,用元素序列代替;

data.assign(int n<T> t);//删除data原内容,用n个t代替;

2.deque<T>容器实现一个双端队列。它等价于一个矢量,但是增加了向容器开头添加元素的能力。

3.list<T>容器是一个双向链表。






原创粉丝点击