C++學習vector與陣列優缺點
陣列是C++中內建的一種低階的複合型別,可以儲存某種型別的一組物件。
不提倡在C++中使用陣列,因為它有很多缺點:
1.一經建立,陣列長度固定,不能改變,如果想更改陣列長度,只能建立一個更大的新陣列,
然後把原陣列的所有元素複製到新陣列的儲存空間中去。
2.一經建立,就不允許新增新的元素。
3.陣列不提供獲取其容量大小size操作。
4.陣列不提供自動新增元素push_back操作。
5.與使用vector型別的程式相比,使用內建陣列的程式更容易出錯,且難以除錯。
6.不允許陣列直接複製和賦值
設定陣列的長度size必須是const整型常量
正確: const size_t array_size = 10;
int ia[array_size];
錯誤: int array_size =10;
int ia[array_size];
現在還有很多人使用陣列的原因是為了相容以前的程式碼,屬於歷史原因;還有一點是因為使用陣列速度比vector快,但是如果不是對速度要求特別高,不建議使用陣列。
相關推薦
C++學習vector與陣列優缺點
陣列是C++中內建的一種低階的複合型別,可以儲存某種型別的一組物件。 不提倡在C++中使用陣列,因為它有很多缺點: 1.一經建立,陣列長度固定,不能改變,如果想更改陣列長度,只能建立一個更大的新陣列, 然後把原陣列的所有元素複製到新陣列的儲存空間中去。 2.一經建立
C語言學習——指標與陣列、空指標
指標與陣列 方法1 方法2 小案例 空指標 指標與陣列 陣列的元素在記憶體中是互連的,通過指標運算元組某個元素 方法1 int vals[4]={1,2,3
c++學習---vector
ack src 返回 wid image r語 技術 img nbsp vector存放類型不同,{}有些區別-: vector的size的返回類型: push_back的使用: 要防止緩沖區溢出,使用範圍for語句: c++學習---vector
【C++】Vector的陣列用法(二)
1.定義 vector<vector<int>>a; 2.初始化 a.resize(row,vector<int>(column)); a.resize(row);for (int i = 0; i < row;
[轉]C/C++:學習void與void*詳解
void與void*詳解 void 無型別 void* 無型別指標 可以指向任意型別的資料。 void: 1.函式沒有返回值,宣告為void型別 2.函式無引數。 3.函式的引數可以是任意型別的指標 void*。 【void真正發揮的作用在於】: 1)
C語言/C++學習思路與導航圖分享
官方部落學習群 C語言/C++學習交流Q群:948954484 【C語言/C++程式設計學習】:C語言/C++程式設計學習 進群福利: 進群可以學習: ①C語言/C++學習學習方法,以及學習思路
(C/C++學習心得)6.陣列指標和指標陣列
說明:int (*p)[4] 和 int *p[4](陣列指標和指標陣列),如果你是一個初學者,也許當你看到這兩個名詞的時候,已經懵了。其實,只要你理解了其中的含義.這兩個名詞對你來說會相當簡單並且很有趣,下面,我們就來深入探討一下究竟什麼是陣列指標,什麼是指標陣列。 一.指標陣列 1.前面我們已經學過陣列
(C/C++學習心得)7.陣列及其訪問方式
說明:陣列的資料型別是一種構造型別,而儲存陣列的記憶體是一段連續的儲存區域。陣列的資料型別決定了連續記憶體的訪問方式,它包括陣列的三要素:起始地址、步長以及元素個數。 一.一維陣列 1.形式:type 陣列名[N],type為該一維陣列中元素的型別(即步長),N表示該陣列中的元素個數,而陣列名則是陣列元素的
c++中vector與list的區別
c++標準庫中,容器vector和list都可以用來存放一組型別相同的資料。而且二者不同於陣列的一點是,支援動態增長。但它們還是有有幾點不同 (1) vector是順序表,表示的是一塊連續的記憶體,元素被順序儲存;list是雙向連線表,在記憶體中不一定連續。 (2)當數值
C#中集合與陣列的區別
【前言】剛開始學習的時候沒有仔細去思考,然後這些內容在我腦海中就沒有什麼 印象,問問自己這些有什麼區別也只能籠統的說出一點兒來,所以學習還是要做到顆 粒歸倉的,及時總結是很重要的呀。 陣列:陣列是相同資料型別的元素按
C語言指標與陣列易混淆知識點(一)
一、指標與陣列 指標:指標本身也是一個變數,它的內容是指向的內容的地址。指標同樣有型別的區分,char 的指標只能指向char型資料,int 指標指向int型資料。但是指標所佔記憶體單元的大小(即其內容)是跟作業系統的地址位數有關,比如32位
c++ stl vector轉陣列(實際是陣列的指標)
轉自:http://www.cnblogs.com/loongfee/archive/2012/05/05/2484574.html std::vector很方便,但有時呼叫的函式的引數規定是陣列,需要將vector轉為陣列,另外開闢一個空間,將vector一項項複
C++學習路線與推薦書籍
很多人也許像我一樣都想找一份學習的辟邪劍譜,轉一個別人的帖子,希望對能夠給用的。欲練此功,不必揮刀自宮的,呵呵。 這句說的好:“最後,程式語言並非計算機科學技術的全部,尤其對於在校的學生來說,打好基礎、開闊視野都是非常重要的。” 一)語言入門: 《C+
《轉》c++學習路線與推薦書籍
很多人也許像我一樣都想找一份學習的辟邪劍譜,轉一個別人的帖子,希望對能夠給用的。欲練此功,不必揮刀自宮的,呵呵。 這句說的好:“最後,程式語言並非計算機科學技術的全部,尤其對於在校的學生來說,打好基礎、開闊視野都是非常重要的。” 一)語言入門: 《C+
C#學習心得與自我反思
今天都學了什麼知識呢,想知道麼,也不賣關子了,今天呢學習了變數與分支語句、迴圈、陣列、列舉(enum),結構(struct)等知識,這些知識跟java差不多,沒什麼區別,列舉呢,本來就不是很好,所以就仔細看了看,還是有收穫的,感覺理解又加深了點,但是運用覺得還是很生疏,因為
第一學期的C++學習心得與感受
我還依稀的記得自己曾在大一開學前的2,3個周去預習過,但當時看的並不是C++而是C語言。一開始看前幾章覺得這個真的挺簡單,根本不用預習。於是就又放棄預習。當我真正開始上C++,開始去深入的體會,領悟它時,我才發覺自己之前的感覺是不正確的。因為越往後學,才發現這個真的學起來不容易,而老師的作業量
C/C++學習規劃與發展指引
http://topic.csdn.net/u/20120610/18/44AB47F0-F609-4C27-8EE1-91D804188F38.html因為CSDN論壇的絕大數壇友都是學生黨或者職場菜鳥,所以此貼專門為這兩大群體服務。 尤其是學生黨,因為後知後覺往往容易
C++學習方法與心得
大一即將過去,對一個重來沒有接觸過的專業到如今基本掌握基礎的C++知識,瞬間感覺自己變得高大上起來。以下是我的學習方法和學習心得。 學習方法: 1.看書本,所有的知識都源於課本,把課本的知識點看懂看會才是真正的能夠掌握真正的知識,將重要的知識點標記出來,必要時可以記一下筆
指標與陣列(C++學習筆記 11)
一、指向陣列元素的指標 1、定義指向陣列元素的指標 每個陣列元素相當於一個變數,所以定義指向陣列元素的指標與定義指向變數的指標方法相同。例如: int ia[5]; /*定義包含5個數組元素的整型陣列ia*/ int *pi; /*定義指向整型變數的指標變數pi*/ p
C語言中指標的深入學習之指標與陣列之間的恩怨
序言: 我總是在想到底什麼樣的問題才是值得寫一篇部落格來記錄的,什麼高深的學術?顯然對於筆者來說並不適合,我只是記錄自己在所學之時覺得有價值的問題,這樣部落格也變得有意義了; a與&a的區別(指標加減的理解) 注意此處是建立在定義int a[5] 的基