C++順序容器初始化
容器:
一些特定型別物件的集合。
我個人理解是:一群我們定義好的資料型別存放在一個特定的區域,而這個區域呢就是容器。
順序:
有序的,且不依賴於元素的值,而是在我們存放資料時的位置相對應。
個人理解:我們最開始存放一個數據,然後接下來的資料都是依次存放在上一個資料後面位置。
標準庫中的順序容器(C++primer 第九章表)
Type | Function |
---|---|
vector | 可變大小陣列(動態陣列)。支援快速訪問。在尾部之外的位置插入資料可能很慢 |
list | 雙向連結串列。只支援雙向順序訪問。在list中任何位置進行插入\刪除操作都很快。 |
deque | 雙向佇列。支援快速隨機訪問。在頭尾位置插入\刪除速度很快。 |
forward_list | 單向連結串列。只支援單項順序訪問。在連結串列中任何位置進行插入\刪除操作都很快。 |
array | 固定陣列大小。支援快速訪問。不能新增和刪除元素。 |
string | 與vector相似,專門儲存字元的容器。 |
Example:
/* * 順序容器的初始化,與輸出。 * 2018年 05月 23日 星期三 18:08:32 CST */ //-------呼叫各種容器的標頭檔案-----------------//----------------------------------------- using namespace std; int main() { //定義以及初始化容器 vector<int> age{1,2,3,4,5}; //age是一個動態陣列,其型別是vector,容器裡面儲存資料型別是整型。 list<const char *> sex{"male","female"}; //sex是一個雙向連結串列型別,其中儲存的資料型別為字元指標常量deque<string> name{"bob","alice"}; //name 是一個雙向佇列型別,其中儲存的型別是字串型別 vector<int> num(age); //num與age相同,只是其初始化不同於age,而是copy操作,把age的元素copy到num中。 list<string> can(name.begin(),name.end()); /*因為copy容器的話,需要容器型別和容器中元素型別相同,array需要大小也作為比較引數。 *滿足前面這些要求,就可copy。如果有一個不匹配,便不能copy。 *但一種情況下,就是容器型別可以不同,容器中元素也可以不同,但被拷貝容器中元素可以轉換成拷貝容器中元素型別 *便可以用一個容器的範圍引數傳遞給另一個容器的建構函式。 *例如上面兩個容器型別相同,但儲存資料型別不同,但可以通過範圍引數進行copy。 */ const int size=9; //array 固定大小的陣列。與內建陣列不同的是它可以copy而且更安全。 array<string ,size> boss{"馬化騰","馬雲","雷軍","李彥巨集"}; array<int ,size> ascii{1,2,3,1}; //定義array容器的時候類似於前面幾個容器,但是需要指定容器大小,而且沒有被使用者初始化的元素,會被系統初始化 //--------------------------------------- /* *用常規for語句通過迭代器進行解操作輸出 *begin()指向容器開始 *end()指向容器元素末尾的下一個位置 *rbegin()返回反向迭代器,指向容器結束的位置 *rend()指向容器開始的上一個位置 */ for(auto neg=age.begin();neg!=age.end();neg++) { cout<<*neg<<"\t"; } cout<<endl; for(auto neg=age.rbegin();neg!=age.rend();neg++) { cout<<*neg<<"\t"; } cout<<endl; /* *用範圍for語句遍歷上述容器中的元素 */ for(auto i: sex) { cout<<i<<"\t"; } cout<<endl; for(auto i:boss) cout<<i<<"\t"; cout<<boss.size()<<endl; for(auto i:ascii) cout<<i<<"\t"; cout<<endl; return 0; }
Run:
[email protected]:~/c++/c++bin/ch1$ ./SequenceContainer 12345 54321 malefemale 馬化騰馬雲雷軍李彥巨集9 123100000
一步一步慢慢學,不怕學的比別人慢,就怕什麼也沒學懂。
----致自己
相關推薦
C++順序容器初始化
順序容器容器: 一些特定型別物件的集合。我個人理解是:一群我們定義好的資料型別存放在一個特定的區域,而這個區域呢就是容器。順序: 有序的,且不依賴於元素的值,而是在我們存放資料時的位置相對
C++順序容器類中物件初始化、賦值、swap
順序容器中,對於初始化物件,除了使用列表和一對迭代器初始化物件時,列表中元素和求迭代器所引用的值跟初始化的物件相容即可。其他的都需要保證型別完全相同 至於賦值,C++順序容器來還定義了一個assig
C++ 建構函式初始化呼叫順序及類函式內部巢狀函式情況
C++建構函式初始化順序 C++建構函式按下列順序被呼叫:(1、2、3、4是按照優先順序順序來的!) (1)任何虛擬基類的建構函式按照它們被繼承的順序構造; (2)任何非虛擬基類的建構函式按照它們被繼承的順序構造; (3)任何成員物件的建構函式按照它們宣告的順序呼叫;(如果成員物件有前面出現
SpringIOC容器初始化之後,和銷燬之前幾種方法的執行順序
1.搭建一個簡單的Spring環境 2.定義一個介面及其實現類 package com.roger.service; public interface SpringLifeCycleService { void springLifeCycle(); } package co
C++類成員初始化順序問題
今天剛把買了一個月的劍指offer這本書翻閱一下,看到一個簡單的舉例。說應聘C++崗位的不知道成員變數初始化順序!大冬天的背後竟冒出了一絲冷汗,因為我也不知道,所以就上網查了一下,將學到的知識記錄如下。 主要參考部落格: 問題來源: 由於面試題中,
【C++ -> 容器初始化】結構體巢狀複雜結構初始化
案例簡述 最近在設計資料結構時,資料之間較為複雜,資料結構如下: typedef struct tagDataInfo { long offs; // 索引 char name[20]; /
C++複習筆記——初始化列表順序
參考測試程式碼1: #include<iostream> using namespace std; class A { public: A(int iniI,int iniJ,int iniK):i(iniI),j(i),k(iniK){}
順序棧的C語言實現——初始化函式、入棧函式和出棧函式
將順序棧的結構定義為: #define M 100 //棧的空間 typedef struct { int data[M]; int top; } SqStack; 試寫出SqStack的初始化函式、入棧函式和出棧函式 。並在main()函式中測試上述
C#類的初始化順序
類的初始化 就是 執行順序 靜態 初始 副本 只有一個 靜態成員 初始化 類在初始化時的執行順序,依次如下: 1: 子類靜態變量 2: 子類靜態構造函數 3: 子類非靜態變量 4: 父類靜態變量 5: 父類靜態構造函數 6: 父類非靜態變量 7: 父類構造函數
Linux下C結構體初始化
直觀 tro 擴展性 方式 建議 struct 初始化方式 www 寫到 原文地址在這裏: http://www.cnblogs.com/Anker/p/3545146.html 我 只把裏面的主要介紹和代碼寫到這裏了. 順序初始化 教科書上講C語言結構體初始化
多重繼承關系初始化順序及初始化
java 所有 clas 屬性 配對 -- 如果 實現 硬盤 順序:父類屬性--> 父類構造方法--> 子類屬性--> 子類構造方法 初始化: 1.在創建類之前,檢查是否已加載檢查硬盤上的.class是否加載到內存中,如果沒有加載就先加載父類的文件,再加載
main.c 流程-buffer初始化
device wait clean node lean free long 表鏈 pan void buffer_init(long buffer_end)函數的理解: * 0 0x100000 0x400000
C# 對象初始化器和集合初始化器
price pub 構造 itl str public 通過 list 集合 /// <summary>/// 圖書類/// </summary>public class Book { /// <summary> ///
C# 串口初始化
串口 rs232 com口 初始化C# 串口初始化方法之一。完整例程中定義了多個串口,程序運行初始會從配置文件加載串口設置並批量初始化串口。... using System.Text.RegularExpressions; ... //Example, InitPort(gdmPort, 2, "11520
C++中的初始化參數列表
圖片 .com 包含 自然 cout csharp pan 初始化列表 arp c++中以下幾種情況的變量的初始化不可以寫在構造函數裏,而是要寫在初始化參數列表中 1.const常量 class AA { public : const int num; publi
C++順序容器知識總結
交換 prior 效率 導致 獲取 tac pos stack empty 容器是一種容納特定類型對象的集合。C++的容器可以分為兩類:順序容器和關聯容器。順序容器的元素排列和元素值大小無關,而是由元素添加到容器中的次序決定的。標準庫定義了三種順序容器的類型:vecto
Spring源碼分析總結(一)-IOC容器初始化
Spring源碼分析總結一、IOC容器的初始化過程 IOC容器的初始化是由refresh()方法啟動。經常使用的ApplicationContext 有:ClassPathXmlApplicationContext和FileSystemXmlApplicationContext、XmlWebApp
03.Spring IoC 容器 - 初始化
itl ret num servlet fontsize eat 圖片 number sources 基本概念 Spring IoC 容器的初始化過程在監聽器 ContextLoaderListener 類中定義。 具體由該類的的 configureAndRefreshWe
spring原始碼學習之路---IOC容器初始化要義之bean定義載入(四)
上章說到要帶各位去看看bean定義載入的要義,其實就是loadBeanDefinitions這個方法的具體實現步驟,下面我們跟隨這個方法去看下它到底是如何載入bean定義的。 上面是我擷取的實現了loadBeanDefinitions的類級別截圖,loadBeanDefinit
spring原始碼學習之路---深度分析IOC容器初始化過程(三)
分析FileSystemXmlApplicationContext的建構函式,到底都做了什麼,導致IOC容器初始化成功。 public FileSystemXmlApplicationContext(String[] configLocations, boolean ref