1. 程式人生 > >C++:list 的使用

C++:list 的使用

std::list

容器屬性:

序列 | 雙鏈表 | Allocator-aware

序列容器中的元素按嚴格的線性順序排序。各個元素按其順序訪問它們的位置。

每個元素儲存有關如何定位下一個元素和前一個元素的資訊,允許在特定元素之前或之後(甚至整個範圍)進行恆定時間插入和擦除操作,但不允許直接隨機訪問。

容器使用allocator物件來動態處理其儲存需求。

迭代器相關函式:

(public member function )

begin

將迭代器返回到開頭(增長方向:begin -> end)

end

將迭代器返回到結尾

返回反向迭代器以反向開始(增長方向:rbegin -> rend)

rend

將反向迭代器返回到反向結束

將const_iterator返回到開頭(與begin類似,區別在於begin指向的值可以改變,cbegin指向的值不可改變)

cend (C++11)

將const_iterator返回到開頭末尾

返回const_reverse_iterator以反向開始

crend (C++11)

將const_reverse_iterator返回到反向結束

容量相關函式:

(public member function )

empty

判斷容器是否為空

size

返回目前元素的數量

返回可以拓展的最大容量

元素訪問操作:

(public member function )

front

訪問首元素

back

訪問尾元素

修改元素操作:

(public member function )

分配容器的內容

在首部新增一個元素

在首部新增一個元素

在首部殺出一個元素

在尾部新增一個元素

在尾部新增一個元素

在尾部刪除一個元素

在迭代器位置插入元素(emplace使用直接建構函式,insert使用複製建構函式)

迭代器位置插入元素,或者插入連續的序列

erase

迭代器位置插入元素,或者插入連續的序列

swap

交換兩個容器的內容

改變目前容器的大小

clear

清空容器的內容

序列操作:

(public member function )

從兩個容器間轉移元素

刪除特定值的元素

刪除滿足特點的元素

刪除重複值

merge

合併兩個容器,(可排序合成的序列,詳細操作自行查詢)

sort

對元素序列進行排序

反轉元素的順序

相關推薦

C#List陣列的排序,分組,按條件去重複

1.陣列元素   MyPoint.cs using System; namespace WindowsFormsApp21 { class MyPoint : IComparable<MyPoint> { public int X {

C++list 的使用

std::list 容器屬性: 序列 | 雙鏈表 | Allocator-aware 序列容器中的元素按嚴格的線性順序排序。各個元素按其順序訪問它們的位置。 每個元素儲存有關如何定位下一個元素和前一個元素的資訊,允許在特定元素之前或之後(甚至整個範圍)進行恆定時間插入

C# list 中欄位的模糊查詢匹配實現

前言: 在遊戲中,關於在列表中 查詢某行資料時,需要通過關鍵字匹配,去遍歷表中的資料,如果表中匹配到關鍵字,則返回該行資料,沒有則返回null。比如查詢在好友列表查詢某個好友時。 建立一個 data 資料:用於儲存item 的所有資訊 (如: id,titl

python 類C數組的兩種形式list -->內容可變, tuple --->內容不可變

size print app http append 列表 itl c數組 multi python 中的列表相當與 C 中的數組,列表:list 初始化使用[ ], 元組:tuple 初始化使用();一、列表list 1 #!/usr/bin/python 2 3

C#實戰小技巧(九)List<string>和string[]的相互轉換

List是string型別列表,string[]是string型別陣列,二者可以互相轉換。 1.string[]轉List string[] strArray = {"a", "ab", "abc"}; List<string> strList = new List<s

C++學習list容器詳解(一)

list容器詳解       首先說說STL         STL就是Standard Template Library,標準模板庫。這可能是一個歷史上最令人興奮的工具的最無聊

C++三種容器list、vector和deque的區別 2018/10/7

在寫C++程式的時候會發現STL是一個不錯的東西,減少了程式碼量,使程式碼的複用率大大提高,減輕了程式猿的負擔。還有一個就是容器,你會發現要是自己寫一個連結串列、佇列,或者是陣列的時候,既要花時間還要操心怎麼去維護,裡面的指標啊,記憶體夠不夠用啊,長度問題,有沒有可能溢位啊等

C++面試題list和vector有什麼區別?

C++面試題:list和vector有什麼區別? 考點:理解list和vector的區別 出現頻率:★★★★ 解析: vector和陣列類似,它擁有一段連續的記憶體空間,並且起始地址不變,因此它能非常好的支援隨機存取(使用[]操作符訪問其中元素),但由於它的記憶體空間是連續的,所

C#.NET底層 List 集合迴圈新增物件(如list.add(model)),為什麼會出現整個list集合都是一樣的資料?

先考考大家,這段程式碼,有沒有問題? stuModel mod = new stuModel(); while (dr.Read()) { mod.DDID = dr["DD

C++三種容器list、vector和deque的區別

           在寫C++程式的時候會發現STL是一個不錯的東西,減少了程式碼量,使程式碼的複用率大大提高,減輕了程式猿的負擔。還有一個就是容器,你會發現要是自己寫一個連結串列、佇列,或者是陣列的時候,既要花時間還要操心怎麼去維護,裡面的指標啊,記憶體夠不夠用啊,長

C# 使用 List 異常未將物件引用設定到物件的例項 問題解決

一 現象   程式執行多次,會出現異常:未將物件引用設定到物件的例項二 問題程式碼List<string> list = null; try { int xx = list.Count

c++實現(list)帶頭結點的雙向連結串列

Vector與list的區別: 1.vector資料結構 vector和陣列類似,擁有一段連續的記憶體空間,並且起始地址不變。 因此能高效的進行隨機存取,時間複雜度為o(1); 但因為記憶體空間是連續的,所以在進行插入和刪除操作時,會造成記憶體塊的拷貝,時間複雜度為o(

初遇C#一個簡單的小程序(圓形周長,面積計算器)

編碼 雙精度 崩潰 輸入 面向對象 窗口 語句 readline 面向對象的語言 作為一個面向對象的語言,與用戶的交互很關鍵! 在此,我們可以先分析一下我們這個小程序要與用戶交互的內容:1.命名很重要,讓用戶看見這個程序就知道這個程序的作用。 2.當用戶打開這個程序時,提示

初遇C#健康計算器

最小值 () 標準 最大 兩個 選擇 bsp min 用戶 上次寫了一個簡單的圓形的周長和面積計算器,這個我們來寫一個對大家都很重要的健康計算器,畢竟健康是福嘛,有了健康,什麽都會有!所以我們都要保持健康! 編程開始: Console.Write("請輸入你的性別(男或

C++順序表類實現約瑟夫問題_密碼不同

class josephus main clu 定義 void seq esp while //.h #pragma once#include <iostream>using namespace std;#define MAXSIZE 100 template

c# 把List<T>轉成DataTable對象,批量導入Sqlserver庫

except foreach sms ltr 行數 object 表數據 tina nec 1 /// <summary> 2 /// Sqlbulkcopies the specified SMS.批量插入到數據庫 3

c#將List&lt;T&gt;轉換成DataSet

foreach for new bsp ack popu per summary [] /// <summary> /// List<T> 轉換成DataSet /// </summary&g

C/C++函數調用規則__stdcall,__cdecl,__pascal,__fastcall

this 返回 但是 寄存器 表示 使用 自動 sta borland __cdecl __cdecl 是 C Declaration 的縮寫,表示 C 語言默認的函數調用方法:所有參數從右到左依次入棧,這些參數由調用者清除,稱為手動清棧。被調用函數不會要求調用者傳遞多少

深入理解Objective-CCategory

fix 忽略 DDU 相關 情況 內存布局 先生 們的 ntc https://tech.meituan.com/DiveIntoCategory.html 摘要 無論一個類設計的多麽完美,在未來的需求演進中,都有可能會碰到一些無法預測的情況。那怎麽擴展已有的類呢?一般而言

C# .Net List<T>中Remove()、RemoveAt()、RemoveRange()、RemoveAll()的區別,List<T>刪除匯總

contains ret 一個 成功 con sde edi ont div 在List<T>中刪除主要有Remove()、RemoveAt()、RemoveRange()、RemoveAll()這幾個方法。下面一一介紹使用方法和註意點。 我們以List<