STL之顺序容器

顺序容器:

  vector:数组

  list:链表

  deque:双端数组

顺序容器适配器:

  stack:堆栈

  queue:队列

  priority_queue:优先级队列

  deque是一个动态数组
  deque与vector非常类似;
  deque可以在在数组开头和末尾插入和删除数据;

 #include <deque>
#include <algorithm> deque<int>::iterator iElemetnLocater;
for(iElementLocater a.begin();
iElementLocater != a.end();
++iElemetLocater){
//distance函数
size_t nOffert = distance(a.begin(), iElementLocater);
cout << "a["<<nOffset<<"]" <<*iElementLocater << endl; }

  list 类模板:

  vector向量只能在末尾插入数据;
  deque可以在开头和末尾拆入;

  顺序容器 STL list类(双向链表)

    list是一个模板类;
    在list开头插入元素;
    在list末尾插入元素;
    在list中间插入元素;  
    删除list中的元素;
    对list中元素进行反转和排序;

 #include <iostream>
#include <list> using namespace std; int main()
{
std::list<int> a;
std::list<list>::iterator iter; a.push_front(); //头插
a.push_front();
a.push_front();
a.push_front();
a.push_back(); //尾插 iter = a.begin();
++iter;
a.insert(iter, ); //通过迭代器位置的改变来插入数据;
//在末尾拆入4个20
a.insert(a.end(), , ) for(std::list<int>::iterator it=a.begin();
it!=a.end();it++){
std::cout << *it << std::endl;
}
return ;
}
 #include <vector>
#include <list>
#include <deque> using namespace std; int main()
{
vector<string> s_vec;
s_vec.push_back("hello");
s_vec.push_back("c++");
s_vec.push_back("STL"); //利用迭代器,vector初始化list
list<string> slist(s_vec.begin(), s_vec.end()); const list<int>::size_type list_size =;
list<string> slist(list_size, "hello"; list<int> I_list; vector<int> ivec; //默认构造函数
ivec.push_back();
ivec.push_back();
ivec.push_back(); vector<int> ivec2(ivec); //使用ivec初始化ivec2;
vector<int> ivec2(ivec); //使用ivec初始化ivec2; char *words[] = {"stately", "plump", "buck"};
size_t words_size = sizeof(words)/sizeof(char*); //利用指针 数组初始化list容器
list<string> words(words, words+words_size): const list<int>::size_type list_size = ;
list<string> slist(list_size, "hello"); //list里面64个hello;
list<int> ilist(list_size); //ilist默认64个0; vector<Foo> a; //不进行初始化,不用调用Foo的构造函数;
vector<Foo> b(, ); //进行了初始化,而且调用的是带参数的构造函数; vector<vector<string> > lines; //vector里面存放vector
list<vector<string> > list_lines; //list里面存放vector //list<int> ilist(ivec); //Error;
return ;
}

  

上一篇:mac上使用imagealpha命令对图片进行压缩批处理


下一篇:Project Management - 3) Manage Your Meetings