stack,queue,vector用法

分别包含在文件<stack>,<queue>,<vector>

定义:
stack<class T> s;
queue<class T> q;
vector<class T> v;
stack的方法:
push()的向容器顶部里插入元素;
pop()是删除容器顶部的元素;
top()返回容器顶部的元素;
size()返回容器的元素个数;
begin()是返回一个位于容器的第一个元素的迭代器;
end()当然是最后了;
empty()是检查是否为空的方法 

queue的方法,它和stack很像:
back()返回队列最后一个元素引用
empty()是检查是否为空的方法 
front()获得队列最前面一个元素引用
push()在队列尾添加一个数据
pop()删除队列头的一个数据
size()队列中元素个数

vector的方法
vector容器是一个模板类,可以存放任何类型的对象(但必须是同一类对象)。vector对象可

以在运行时高效地添加元素,并且vector中元素是连续存储的。
vector的构造函数:
vector<string> v1; // 创建空容器,其对象类型为string类
vector<string> v2(10); // 创建有10个具有初始值(即空串)的string类对象的容器
vector<string> v3(5, "hello"); // 创建有5个值为“hello”的string类对象的容器
vector<string> v4(v3.begin(), v3.end()); // v4是与v3相同的容器(完全复制)

void push_back(x); // 向容器末尾添加一个元素 
void pop_back(); // 弹出容器中最后一个元素(容器必须非空)
vector<int>::iterator iter=v.begin();//初始化迭代器,让他指向v的开始。
iterator erase(iterator it); // 删除指定元素,并返回删除元素后一个元素的位置(如果

无元素,返回end())
iterator erase(iterator first, iterator last); // 注意:删除元素后,删除点之后的元

素对应的迭代器不再有效。void clear() const; // 清空容器,相当于调用erase( begin(),

end())
void reserve(size_type n); // 确保capacity() >= n

说明

  vector是一种 动态数组 ,是基本 数组 的类模板。其内部定义了很多基本操作。
  #include <vector>  注意:头文件没有“.h”

构造:

   这个构造函数还有一个可选的参数,这是一个类型为T的实例,描述了各个向量种各成员的初始值
  如:vector<int> v2(init_size,0); 如果预先定义了:int init_size;他的成员值都被初始化为0;
  ·  复制构造函数,构造一个新的向量,作为已存在的向量的完全复制;
  如:vector<int> v3(v2);
  ·  带两个常量参数的构造函数,产生初始值为一个区间的向量 区间由一个半开区间[first,last](MS word的显示可能会有问题,first前是一个左方括号,last后面是一个右圆括号) 来指定。
  如:vector<int> v4(first,last) vector<int> v1;
  vector<int> v2(init_size,0);
  vector<int> v3(v2);

方法:

  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元素互换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值