sort排序第9章 容器本章主要概括性地介绍容器,以及容器的

电脑杂谈  发布时间:2018-02-10 14:23:20  来源:网络整理

sort排序 linux_java中sort排序_sort排序

本章主要概括性地介绍容器,以及容器的时间复杂度和对比

时间复杂度上的比较:??

分类:

1.序列式容器

序列式容器在STL中主要包含常见的三种:向量vector、链表list和双端队列deque。

1.1 向量vector为一种顺序存储同类型元素的数据结构。它是一种数组方式的思路实现,并且可以随机访问的序列。sort排序

1.2 链表list是一种实现双向链表数据结构的容器。它只支持顺序访问序列中的元素。该容器在删除、插入相应元素时,效率较高。另外,list可以与vector一样在需要时动态改变其大小。

1.3 双端队列deque是类似向量的一种队列结构。它允许在该队列的头部和尾部插入并且删除相应的元素。同时,它也支持针对其元素的顺序以及随机访问。

2.关联式容器

关联式容器则是采用了key-value键值的方式存储和访问容器中的元素。关联式容器采用红黑树结构,支持快速、随机并且高效的检索其中的元素。关联式容器主要包含set、multiset、map以及multimap容器。

set容器支持随机存取,并且其键与对应的数据元素为同一个值。该容器中所有的元素必须是唯一的,不能包含重复的元素。

multiset容器则在set基础上可以包含重复的元素。同样,该容器的键与对应的元素也是为同一值。

map是一个包含键值对的容器。该容器允许存在重复的键值,但每个键只能与一个值相互对应。

multimap提供单个关键词可以对应多个数据的数据结构操作,

STL还定义了一些容器适配器: 如 stack , queue, priority_queue??

vector

vector的7种初始化方法:

????????????????vector<int> v1;
	vector<int> v2(v1);
	vector<int> v3 = v1;
	vector<int> v4(5, 1);
	vector<int> v5(5);
	vector<int> v6{ 1, 2, 3, 4, 5 };
	vector<int> v7 = { 1, 2, 3, 4, 5 };
pushi_back( )往尾部添加元素

pop_back() 删除最后一个元素

empty( ) 判断是否为空

size( )?? 存入数据个数

swap()?? ??替换2个vecotr中的元素????

insert()?? 在指定位置插入数据

vector虽然可以动态增长,但是有两个限制:

不能在范围for循环中向vector添加元素。sort排序

任何一种改变vector对象容量的操作会使迭代器失效,即凡是使用了迭代器的循环体,都不要向迭代器所属容器添加元素。

vector的迭代器是随机存取迭代器,两个迭代器之间可以相互比较,加减

和vector一样,重载了比较运算符,按照字典顺序比较 vector 中的值??

List将元素按顺序储存在链表中. 与向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢

assign() 给list赋值??

back() 返回最后一个元素??

begin() 返回指向第一个元素的迭代器??

clear() 删除所有元素??

empty() 如果list是空的则返回true??

end() 返回末尾的迭代器??

erase() 删除一个元素??

front() 返回第一个元素??

insert() 插入一个元素到list中??

max_size() 返回list能容纳的最大元素数量??


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-70158-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 谭悟真
      谭悟真

      无奈上天给她开了个玩笑

    热点图片
    拼命载入中...