中国容器网 - 容器行业门户网站 !

商业资讯: 材料行情 | 风云人物 | 技术前沿 | 企业新闻 | 热点资讯 | 行业访谈 | 行业资讯 | 营销管理

你现在的位置: 首页 > 商业资讯 > 热点资讯 > C++容器:顺序容器,关联容器
G.biz | 商业搜索

C++容器:顺序容器,关联容器

信息来源:rooqoo.com.cn   时间: 2013-08-26  浏览次数:1798875

    一,顺序容器
    vector--连续存储的元素,单向的
    list----由节点组成的不连续存储的双向鏈表
    deque--连续存储的元素,双向的
    1,顺序容器主要分为vector, deque, list。
    2,容器内的元素类型必须至少满足2个条件:可复制和可赋值。
    3,list容器的迭代器,不支持算术运算,不支持关系运算,也没有下标操作,只有最简单的自增 自减 相等 不等 运算。
    4,所有的 迭代器范围都是左闭合区间,  [beg,end)  包括beg,但不包括end 5,顺序容器定义的几种类型:
    size_type容器大小
    iterator  迭代器, reverse_iterator 逆序迭代器const_iterator 只读迭代器(指向的元素只读),  const_reverse_iterator difference_type  迭代器的差值,可为负值
    value_type元素类型
    reference 相当于 value_type&,即指向迭代器对应的元素
    const_reference相当于const value_type &
    6,a.begin()  a.end() 对应于 iterator;a.rbegin()   a.rend() 对应于reverse_iterator,注意,如果a是const的,那么iterator也必须是const_iterator的
    7,添加元素的擦作a.push_back(t);  在a末尾增加元素t;a.push_front(t);  在a前端增加元素t,只使用于list和deque a.insert(p,t);  在迭代器p前面插入元素t,返回新元素的迭代器a.insert(p,n,t); 在迭代器p前面插入n个元素t,返回void a.insert(p,b,e);在迭代器p前面插入迭代器b,e标记的范围内的元素,返回void
    8,删除元素的操作a.pop_back();删除a的最后一个元素,返回void,如果a为空,则函数未定义a.pop_front();删除a的第一个元素,返回void;如果a为空,则函数未定义;只适用于list和deque a.erase(p);  删除迭代器p指向的元素,返回下一个元素的迭代器;a.erase(b,e);删除迭代器b,e之间的元素,返回下一个元素的迭代器a.clear();删除a的所有元素,返回void
    9,容器空间大小的操作a.size() 元素个数  c.max_size() 最大元素个数a.empty() bool值,指示a是否为空c.resize(n,t) 重置c的大小为n,且 新增加的元素初始化为t。
    10,  a.begin()  a.end()指向iterator a.front()  a.back() 指向reference注意,vector<int>::reference  last=a.back(), last1=*--a.end();,a.back指向最后一个元素,a.end指向最后一个元素的下一位置
    11,顺序容器的赋值操作
    c1=c2;
    c1.swap(c2);  c1 c2 互换c.assign(b,e);  将迭代器b,e之间的元素复制给c c.assign(n,t); 将c设置为n个值为t的元素
    以上操作,都是首先删除c原来的所有元素后再进行的操作
    二,顺序容器适配器(adaptor)
    stack--后进先出的排列,类似 堆    #include<stack> queue--先进先出的排列,队列
    priority_queue--优先队列#include<queue>
    1,适配器的初始化适配器都是建立在某个顺序容器之上的。

 

    ——本信息真实性未经中国容器网证实,仅供您参考