cb40a c STL 演算法 交換swap

2022-07-17 10:09:08 字數 2433 閱讀 5882

cb40a_c++_stl_演算法_交換swap_ranges

swap_ranges(b,e,b2);

如果兩個容器的資料數量不一致時,只交換一部分資料,

a裡面3個,b裡面5個,則只會交換3個,b裡面還有兩個不變

注意:下列兩種方法也是交換演算法

1.容器的swap()成員函式

2.賦值操作

1

/*cb40a_c++_stl_演算法_交換swap_ranges

2swap_ranges(b,e,b2);

3如果兩個容器的資料數量不一致時,只交換一部分資料,

4a裡面3個,b裡面5個,則只會交換3個,b裡面還有兩個不變56

注意:下列兩種方法也是交換演算法

71.容器的swap()成員函式

82.賦值操作910

*/11

12 #include 13 #include 14 #include 15 #include 16

17using

namespace

std;

1819

intmain()

2059

60//

再次顯示:

61 cout << "

vector資料

"<62for (vector ::iterator iter = ivec.begin(); iter != ivec.end(); ++iter)

63 cout << *iter << '';

64 cout <65 cout << "

deque的資料

"<66for (deque::iterator iter = ideq.begin(); iter != ideq.end(); ++iter)

67 cout << *iter << '';

68 cout <6970 cout << "

ideq裡面:前面的三個資料和後面的三個資料相互交換

"<71 swap_ranges(ideq.begin(), ideq.begin()+ 3

, ideq.rbegin());

72for (deque::iterator iter = ideq.begin(); iter != ideq.end(); ++iter)

73 cout << *iter << '';

74 cout <7576 vectorivec1;

77 vectorivec2;

78 ivec1.push_back(1

);79 ivec1.push_back(2

);80 ivec1.push_back(3

);81

82 ivec2.push_back(10

);83 ivec2.push_back(20

);84 ivec2.push_back(30

);85

86 cout << "

交換前vector1的資料:

"<87for (vector ::iterator iter = ivec1.begin(); iter != ivec1.end(); ++iter)

88 cout << *iter << '';

89 cout <90 cout << "

交換前vector2的資料:

"<9192

for (vector ::iterator iter = ivec2.begin(); iter != ivec2.end(); ++iter)

93 cout << *iter << '';

94 cout <9596

ivec1.swap(ivec2);

97 cout << "

ivec1.swap(ivec2);實際交換的是指標---,速度快。

"<9899 cout << "

交換後vector1的資料:

"<100for (vector ::iterator iter = ivec1.begin(); iter != ivec1.end(); ++iter)

101 cout << *iter << '';

102 cout <103 cout << "

交換後vector2的資料:

"<104105

for (vector ::iterator iter = ivec2.begin(); iter != ivec2.end(); ++iter)

106 cout << *iter << '';

107 cout <108109

110111

return0;

112 }

cb22a c 標準模板庫 STL map

cb22a c 標準模板庫 stl map multimap紅黑樹 資料結構 關聯容器 map 對映,key不能重複,一對一對的,value type 1,one multimap 多對映key可以重複 紅黑樹 資料結構 map,multimap就是紅黑樹 二叉樹 基本操作 insert 4 種方法...

cb14a c 順序容器的操作7

cb14a c 順序容器的操作7 賦值與交換 swap c1 c2 c2容器的資料賦值給c1 c1.swap c2 c1與c2資料交換 c.assign b,e 用於賦值,型別相容就可以 svec.assign slist.begin slist.end string不能轉成字元指標,指標可以轉st...

cb04a c 資料結構 順序容器介面卡STL

cb04a c 資料結構 stl queue佇列 一般用來做系統軟體開發 佇列 只能兩端資料 與堆疊 只能一端運算元據 都沒有迭代器。佇列 fifo先進先出 自適應容器 容器介面卡 棧介面卡stl queue queueq queueq 但不能用vector做佇列。佇列要求兩端,前後都可以操作。q....