首页 >> 民生救助

标准C程式库标准样版库串列样版节能

民生救助  2020-11-04 04:06 字号: 大 中 小

过去几年以来,C++ 程式语言的标准语言定义程序经历了一个大改变。此标准化程序便是标准资料结构库的产生,此程式库通常称为「标准样版库」( Standard Template Library ) 或 STL 。由於 STL 是 C++ 语言定义的一部份,因此使用 STL 的程式应该享有高度可植性,因为任何标榜支援 " 标准C++" 的编译程式都必须提供 STL 实作。

叠代字只是一种类似指标的物件,可以用来循环存取容器中的所有元素。由於不同的演算法需要以个种不同的方式来游历容器,因此有各种不同的叠代子形式。标准样版库中的每个容器类都提供一种叠代子,适合和实作容器所用的储存技巧配合使用。

在执行过程中,如果一个问题中的元素个数变化非常大,或者无法事先预估元素个数,则不适合采用向量资料型态。在这种情况下,连结串列资料抽象是比较恰当的选择。连结串列的观念是一种很自然的资料抽象,导源於一个问题中的资料结构必须维护一个群集,而群集中的元素个数无法事先预知,或者可能剧烈变化。基本上,连结串列的观念是维护一个串连起来的集合,其串每个动态配置的链都储存一个值与一个指向下一链的指标。如果链不是串列最後一个储专资讯的容器,最简单的形式只储存指向第一个链的指标。

串列有许多型式,大略可分为四种:第一、基本型式,拥有 (1) 链结。第二、可同时储取第一个链和最後一个链,(1)和(3)链结。第三、可以双向游历串列,(1) 和 (2) 链结。第四、包含第二和第三类型,(1)、 (2) 和 (3) 链结。

当我们使用 list 串列时,必须含入 #include :

叠代子

begin 传回一个指向起点的叠代子。

end 传回一个指向终点的叠代子。

rbegin 传回一个指向反转起点的叠代子。

rend 传回一个指向反转终点的叠代子。

Top

宣告及初始化串列

列串和向量一样,是用样版实作出来的。当作样版的型态可用标准资料型态或自订资料型态,但自订资料知道什么是美型态必须设定一个无参数建构子来初始化型态值。另外使用拷贝建构子时,样版会使用此型态的指派运算子 ( = ) 。因此,指派运算子是否要定义可由使用者决定。

list int list_one ;

list float list_two ( 4 , 3.2 ); file://配置4个元素,初值为 3.2

list double list_six ( list_two ); file://拷贝建构子

下列几个成员函式可以将串列中的元素做全面或局部的调整。

insert 将元素插入串列中间。它有两个引数分别为一个叠代子和一个值,此值会插入叠代子的位置前面。例: list_sert ( list_gin( ) , 1.34 );

assign 类似於指派运算子的函式,但比指派运算子在运用上围更大,需要较多的参数。但是会删除所有的元素。例:list_sign(12); file://将串列长度为 12 初值为 0

swap 交换两串列的元素。

Top

将元素放入串列

push_back 将元素从後端推入串列。

push_front 将元素从前端推入串列,例:list_sh_front(1.2);

Top

连接两串列

spl好吗?ice 有一点类似 insert 的功能,但原串列的内容会被删除。因为 splice 是将原串列的内容链,直接改成插入的地方,所以资料的位置没有被改变。只是链结的位置改变而已,效率比 insert 快上许多。

merge 合两个有序串列,此成员函式比通用演算法来得有效率,但前提是串列必须已经排序完成。

Top

删除串列

pop_back 传回最後一个元素,并将它从串列中删除。

pop_front 传回最前面一个元素,并将它从串列中删除。

remove 删除串列中某一个值的元素。例:list_move(4); file://删除串列中所有资料是 4 的元素

remove_if 删除满足某一条件的所有值。它和 remove 函式比通用演算法更有效率。例:list_move_if(divisibleByThree);

erase 删除两个叠代子中间的元素。可以只指定一个叠代子,其功能为删除此叠代子到最後一个的元素。

unique 移除所有相邻种元素,只保留第一个元素。使用者可以利用可有可无的二元函式来取代相等比较运算子。例:list_ique();

clear 删除所有的元素。

Top

长度和大小的改变

empty 检查元素个数是否为零个。

resize 可改变串列长度,加长或减少。加果加长的话,可以设定初值。

size 传回容器中所储存元素的个数。

Top

存取元素和叠代子

front 传回容器中第一个元素。

back 传回容器中最後一个元素。

Top

排序

sort 将元素编排成递增顺序,它所采用的是一个有效率的演算法。如果比较运算子不是< ,可以当成引数传入函式中。例:list_rt (widgetCompare);

Top

其它

max_size 可建立元素的最大个数。

reverse 将串列中每一个元素反转。

肿瘤医院
固原什么医院治疗白癜风
汉中治疗白癜风的医院
推荐资讯