C STL 演算法 區間的比較

2021-06-28 18:29:55 字數 1421 閱讀 3253

1、equal(b,e,b2)

if(equal(ivec.begin(),ivec.end(),ilist.begin()))

cout << "這兩個區間相等" << endl;

else

cout << "這兩個區間不相等" << endl;

2、equal(b,e,b2,p)

bool bothevenorodd(int elem1, int elem2)

if(equal(ivec.begin(),ivec.end(),ilist.begin(),bothevenorodd))

else

3、mismatch(b,e,b2)

pair::iterator,list::iterator> values;

values = mismatch(ivec.begin(),ivec.end(),ilist.begin());

if(values.first == ivec.end())

else

4、mismatch(b,e,b2,p)

values = mismatch(ivec.begin(),ivec.end(),ilist.begin(),less_equal());

if(values.first == ivec.end())

cout << "沒找到! (always less-or-equal)" << endl;

else

cout << "找到了(not less-or-equal): " << *values.first << ", " << *values.second << endl;

return 0;

5、lexicographical_compare(b,e,b2,e2)

if(lexicographical_compare(c4.begin(),c4.end(),c1.begin(),c1.end()))

cout << "c4小於c1" << endl;

else

cout << "c4大於等於c1" << endl;

6、lexicographical_compare(b,e,b2,e2,p)

用於按字典序比較兩個序列,如果前者小於後者返回true,否則返回false。

7、sort中使用lexicographical_compare

bool lessforcollection(const list& list1, const list& list2)

sort(cc.begin(), cc.end(), lessforcollection);

C STL基本容器比較

在stl中基本容器有 string vector list deque set map set 和map都是無序的儲存元素,只能通過它提供的介面對裡面的元素進行訪問 set 集合,用來判斷某乙個元素是不是在乙個組裡面,使用的比較少 map 對映,相當於字典,把乙個值對映成另乙個值,如果想建立字典的話...

C STL基本容器比較

摘自 在stl中基本容器有 string vector list deque set map set 和map都是無序的儲存元素,只能通過它提供的介面對裡面的元素進行訪問 set 集合,用來判斷某乙個元素是不是在乙個組裡面,使用的比較少 map 對映,相當於字典,把乙個值對映成另乙個值,如果想建立字...

C STL的查詢演算法

假設你有乙個序列容器,或者有一對迭代器標識了乙個區間,現在你希望在容器中查詢一些資訊,這樣的查詢工作如何進行呢?你的選擇往往是 count,count if,find,find if,binary search,lower bound,upper bound,equal range.該如何選擇呢?現...