顺序容器:初始化

来源:互联网 发布:nginx rewrite if 编辑:程序博客网 时间:2024/06/06 20:24

一、顺序容器和关联容器

1、顺序容器:根据位置来存储和访问这些元素,顺序容器的元素排列次序与元素值无关,而是由元素添加到容器里的次序决定。如:

vector   :支持快速随机访问;

list        :支持快速插入/删除;

deque  :双端队列

顺序容器适配器:

stack    :堆栈,先进后出

queue  :队列,先进先出

priority_queue:有优先级管理的队列

2、关联容器:按键(key)排序


二、测试list

// 采用迭代器初始化初始化同一类型的不同的顺序容器【适用于所有容器】void test_list(){std::vector<int> vec;for( int i = 0; i != 5; ++i ){vec.push_back(i+1);}/*迭代器标记了要复制的元素范围,这些元素用于初始化新容器的元素。迭代器标记出要复制的第一个元素和最后一个元素*/std::list<int> li_1 (vec.begin(), vec.end()); // 用vector的元素初始化listfor( std::list<int>::iterator it = li_1.begin(); it != li_1.end(); ++it ){std::cout << *it << "_";// 1_2_3_4_5_}std::cout << std::endl;// 复制子序列:std::list<int> li_2(vec.begin(), vec.begin()+vec.size()/2);for( std::list<int>::iterator it = li_2.begin(); it != li_2.end(); ++it ){std::cout << *it << "_";// 1_2_}std::cout << std::endl;}

三、测试deque

void test_deque(){std::vector<std::string> vec;vec.push_back("123");vec.push_back("abc");vec.push_back("kfc");std::deque<std::string> de(vec.begin(), vec.end());std::deque<std::string>::iterator it = de.begin();while( it != de.end() ){std::cout << *it << "_";// 123_abc_kfc_++it;}std::cout << std::endl;}

四、使用数组的指针对容器初始化

void use_arr_init_container(){int arr[] = {1,2,3,4,5};// 两种方式动态求出数组的长度:std::cout << "Array size is :" << sizeof(arr)/sizeof(int) << std::endl;//5std::cout << "Array size is :" << sizeof(arr)/sizeof(int*) << std::endl;//5int *begin = arr;int *end   = arr+2;//int *end   = arr + sizeof(arr)/sizeof(int*)/2;// 使用数组的指针初始化容器:std::deque<int> de(begin,end);for( std::deque<int>::iterator it = de.begin(); it != de.end(); ++it ){std::cout << *it << "_";//1_2_}std::cout << std::endl;}




原创粉丝点击