C 中使用STL list 和find函式

2021-10-06 15:02:23 字數 2003 閱讀 6642

首先find的作用:在具有指定值的範圍內找到元素首次出現的位置。

template

inputiterator find(

inputiterator _first, //乙個輸入迭代器,它在要搜尋指定值的範圍內定址第乙個元素的位置。

inputiterator _last, //乙個輸入迭代器,用於在要搜尋的指定值範圍內的最後乙個元素之後的位置進行定址。

const type& _val//要搜尋的值。

);返回值:乙個輸入迭代器,用於定址在搜尋範圍內首次出現的指定值。 如果範圍中不存在此類值,則返回的迭代器將定址範圍的最後位置,即最後乙個元素之後的位置。

使用前需要引入標頭檔案#include <algorithm>

如:#include<algorithm>

#include<list>

…list lst;

…list< int>::iterator itepos = ::find(lst.begin(),lst.end(),5);//尋找值為5的元素位置。

stl list 是乙個雙向鍊錶,迭代器具備前移和後移的能力

1.以下操作同vector

list< int> list;

ilist.push_back(0);

ilist.begin();

ilist.end();

ilist.insert();

ilist.erase();

ilist.clear();

2.以下為list 的特有操作

(1)void push_front(const t &x); //插入乙個結點,作為頭結點

(2)void push_back(const t &x); //插入乙個結點,作為尾結點

(3)void pop_front(); //移除頭結點

(4)void pop_back(); //移除尾結點

(5)void remove(const t&value); //將數值為value的所有元素移除

(6)void unique(); //將「連續而相同的元素」移除只剩乙個

(7)void splice(iterator position, list &x); //將x 結合於position所指位置之前。x 必須不同於*this

(8)void splice(iterator position, list&, iterator i); //將i所指的元素結合於position所指位置之前。position 和 i 可指向同乙個list

(9)void splice(iterator position, list&, iterator first, iterator lsat); //將[first, last)內的所有元素結合於 position 所指的位置之前,position和[first, last)可指向同乙個list,但是position 不能位於[first, last)之內。

(10)void merge(list& x); //將x合併到*this 身上。兩個lists 的內容都必須先經過遞增排序。

(11)void reverse(); //將*this 的內容逆向重置

(12)void sort(); //將list 的元素進行公升序排序

我們結合find函式進行指定位置的新增和刪除

list< int>::iterator itepos = ::find(lst.begin(),lst.end(),5);//在list中尋找值為5的元素位置。

lst.insert(itepos,100);//預設在元素5的前面插入100.

list< int>::iterator itepos = ::find(lst.begin(),lst.end(),1);//在list中尋找值為1的元素位置。

itepos = lst.erase(itepos);//刪除元素1,並返回元素1的下乙個元素位置。注:迭代器被刪除後需要重新賦值。

STL list容器的使用 C

list 的使用 在使用list必須包括標頭檔案 include 1 如何定義乙個list物件 include int main void 2 使用list的成員函式push back和push front插入乙個元素到list中clist.push back a 把乙個物件放到乙個list的後面 ...

演算法c 之stl list詳細使用

include using namespace std list的詳細使用 lists將元素按順序儲存在鍊錶中.與 向量 vectors 相比,它允許快速的插入和刪除,但是隨機訪問卻比較慢.list int l list是鍊錶陣列 int main remove val 刪除所有值為val的元素 v...

C 中使用ref和out詳解

摘 要 傳值引數傳遞的是呼叫引數的乙份拷貝,而傳址引數傳遞的是呼叫引數的記憶體位址,該引數在方法內外指向的是同乙個儲存位置。首先,如果不使用這兩個關鍵字,那是什麼樣 呢?看下面的例子 using system class test static void swap int x,int y stati...