您的位置:首页 > 其它

STL—— 3种顺序容器的基本功能和特性

2016-05-31 16:28 267 查看
1.顺序容器的基本功能

         STL中的顺序容器包括向量(vector)、双端队列(deque)和列表(list)

(1)构造函数

<span style="font-size:12px;">S s(n,t); //构造一个由n个t元素构成的容器实例s。
S s(n); //构造一个有n个元素的容器实例s,每个元素都是T()。
S s(q1,q2);//使用将[q1,q2)区间内的数据作为s的元素构造s。</span>
(2)赋值函数
<span style="font-size:14px;">s.assign(n,t) //赋值后的容器由n个t元素构成。
s.assign(n) //赋值后的容器有n个元素的容器实例s,每个元素都是T()。
s.assign(q1,q2) //赋值后的容器的元素为[q1,q2)区间内的数据。</span>
(3)元素的插入
<span style="font-size:14px;">s.insert(p1,t) //在s容器中,p1所指向的位置插入一个新的元素t,插入后的元素夹在原p1和p1-1所指向的元素之间,该函数会返回一个迭代器指向新插入的元素。
s.insert(p1,n,t) //在s容器中p1所指向的位置插入n个新的元素t,插入后的元素夹在原p1和p1-1所指向的元素之间,没有返回值。
s.insert(p1,q1,q2) //将[q1,q2)区间内的元素顺序插入到s容器中p1位置处,新元素夹在原p1和p1-1所指向的元素之间。</span>
(4)元素的删除
<span style="font-size:14px;">s1.erase(p1) //删除s1容器中p1所指向的元素,返回被删除的下一个元素的迭代器。
s1.erase(p1,p2)//删除s1容器中[q1,q2)区间内的元素,返回最后一个被删除元素的下一个元素的迭代器。</span><strong style="font-size:18px;">
</strong>(5)改变容器的大小
<span style="font-size:14px;">s1.resize(n) //将容器的大小变为n,如果原有的元素个数大于n,则容器末尾多余的元素会被删除;如果原有的元素个数小于n,则在容器末尾会用T()填充。</span>(6)首尾元素的直接访问
s.front() //获得容器首元素的引用。
s.back() //获得容器尾元素的引用。(7)在容器尾部插入、删除元素
<span style="font-size:14px;">s.push_back(t) //向容器尾部插入元素t。
s.pop_back() //将容器尾部的元素删除。</span>(8)在容器头部插入、删除元素
<span style="font-size:14px;">s.push_front(t) //向容器头部插入元素t。
s.pop_front() //删除容器头部的元素t。</span>

2.顺序容器特性比较

操作向量(vector)双端队列(deque)列表(list)
随机访问较慢不能
头部插入

(push_front)
没有push_front,只能用insert

完成
快,

已有迭代器失效,已有指针、

引用不会失效
快,

已有迭代器、指针、引用

都不会失效
头部删除

(pop_front)
没有pop_front , 只能用erase

完成


只会使被删除元素的迭代器、

指针、引用失效


只会使被删除元素的迭代器、

指针、引用失效
尾部插入

(push_back)


当发生容器扩展时,会使所有已有

的迭代器、指针、引用失效,否则

不会使任何已有的迭代器、指针、

引用受到影响


已有迭代器失效,已有指针、

引用不会失效


已有迭代器、指针、引用都不

会失效
尾部删除

(pop_back)


只会使被删除元素的迭代器、指针、

引用失效


只会使被删除元素的迭代器、指针、

引用失效


只会使被删除元素的迭代器、指针、

引用失效
任意位置插入

(insert)
插入位置越接近头部越慢。

当发生容器扩展时,会使所有迭代器、

指针、引用失效,否则之后使插入位置

之后的迭代器、指针、引用失效
插入位置越接近中间越慢

会使所有迭代器、指针、

引用失效


只会使被删除元素的迭代器、指针、

引用失效
任意位置删除

(erase)
删除位置越接近头部越慢

只会使删除位置之后的迭代

器、指针、引用失效
删除位置越接近中间越慢

会使所有迭代器、指针、引用失效


只会使被删除元素的迭代器、指针、

引用失效
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: