1. 程式人生 > >"array"陣列容器 詳解

"array"陣列容器 詳解

"array<>"陣列容器 詳解

陣列容器, 是儲存陣列的容器, 是C型別陣列的擴充, 可以使用迭代器進行操作;

例如"std::array<int, 5>", 需要注意的是, 如果直接進行賦值, "std::array<int, 5> ia = {1, 2, 3, 4, 5}; "

在GCC下會有警告: "missing braces around initializer for 'std::array<int, 5u>::value_type [5] {aka int [5]}' [-Wmissing-braces]"

原因是與初始化陣列的方式不符, 再加一組"{}"

即可, 如: "std::array<int, 5> ia ={{1, 2, 3, 4, 5}};",使引數滿足int[5], 再進行賦值;

陣列一般在初始化過程中賦值, 如果想替換已有的值, 一種方法是遍歷所有的值, 較複雜;

另一種方法是通過複製去重新賦值, 實現快速賦值;

程式碼:

/*
 * test.cpp
 *
 *  Created on: 2013.11.12
 *      Author: Caroline
 */

/*eclipse cdt; gcc 4.7.1*/

#include <iostream>
#include <array>

int main (void) {

	std::array<int, 5> ia = {{1, 2, 3, 4, 5}};
	for(const auto i : ia)
		std::cout << i << " ";
	std::cout << std::endl;

	std::array<int, 5> ia2; // 空陣列
	//ia2 = {1, 2, 3, 4, 5}; //錯誤
	ia2 = ia;
	for(const auto i : ia2)
		std::cout << i << " ";
	std::cout << std::endl;

	return 0;
}


相關推薦

"array"陣列容器

"array<>"陣列容器 詳解陣列容器, 是儲存陣列的容器, 是C型別陣列的擴充, 可以使用迭代器進行操作;例如"std::array<int, 5>", 需要注意的是, 如果

Java容器(以Array Arrays ArrayList為例)

開發十年,就只剩下這套架構體系了! >>>   

Docker 容器

docker duyuheng 容器 容器是 Docker 又一核心概念,簡單的說,容器是獨立運行的一個或一組應用,以及它們的運行態環境。對應的,虛擬機可以理解為模擬運行的一整套操作系統(提供了運行態環境和其他系統環境)和跑在上面的應用。本章將具體介紹如何來管理一個容器,包括創建、啟動和停止等。啟

liunx磁盤陣列raid

liunx raid 一丶raid 1.raid定義 磁盤陣列(Redundant Arrays of Independent Disks,RAID),有“獨立磁盤構成的具有冗余能力的陣列”之意。磁盤陣列是由很多價格較便宜的磁盤,組合成一個容量巨大的磁盤組,利用個別磁盤提供數據所產生加成效果提升整個磁

JS中陣列方法

JS中陣列的方法有很多,但是自己一直沒有抽時間進行整理分類,故單獨寫一篇博文,對目前我所掌握的JS中陣列相關的方法進行整理,夯實一下自己的基礎。 我將陣列相關的方法分為兩類 1.方法會改變原陣列 相應的方法有:shift、unshift、pop、push、rev

Javascript 陣列語法

JavaScript 中的陣列相當於 Java 中的 Map ,陣列本身是一個物件,屬於引用資料型別 更多精彩 更多技術部落格,請移步 asing1elife’s blog 定義 既然陣列是一個物件,當進行 alert(arr) 時

C++ LIST容器

STL之list容器詳解 List 容器 list是C++標準模版庫(STL,Standard Template Library)中的部分內容。實際上,list容器就是一個雙向連結串列,可以高效地進行插入刪除元素。 使用list容器之前必須加上<vector>標頭檔案:#in

C++容器

什麼是容器 首先,我們必須理解一下什麼是容器,在C++ 中容器被定義為:在資料儲存上,有一種物件型別,它可以持有其它物件或指向其它對像的指標,這種物件型別就叫做容器。很簡單,容器就是儲存其它物件的對 象,當然這是一個樸素的理解,這種“物件”還包含了一系列處理“其它物件”的方法,因為這些方法在程式

併發容器的原理,7大併發容器、及使用場景

併發容器的原理,7大併發容器詳解、及使用場景 http://youzhixueyuan.com/use-of-concurrent-containers.html 併發容器的由來 在Java併發程式設計中,經常聽到Java集合類,同步容器、併發容器,那麼他們有哪些具體分類,以及各自之間的

Linux系統常用磁碟陣列RAID5

RAID5最少由3塊硬碟組成,每個硬碟容量一樣,資料儲存於磁碟陣列中的每個硬碟,其中一塊硬碟儲存資料校驗位,當丟失其中的一位時,RAID5能通過演算法,利用其他兩位資料將丟失的資料進行計算還原,因此RAID5最多隻能允許一塊硬碟損壞,可見磁碟利用率是(N-1)/N,資料的安全性得以保障,一般大多數人選擇用RA

STL之vector容器

vector 容器 vector是C++標準模版庫(STL,Standard Template Library)中的部分內容。之所以認為是一個容器,是因為它能夠像容器一樣存放各種型別的物件,簡單的說:vector是一個能夠存放任意型別的動態陣列,能夠增加和壓縮資料。 使用vector容器之前必須

C++學習:list容器(一)

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

高併發之併發容器(從入門到超神)

一、ConcurrentHashMap 在上面已經提到過ConcurrentHashMap,ConcurrentHashMap相比Hashtable能夠進一步提高併發性,其原理圖如下: HashMap,Hashtable與ConcurrentHashMap都是

docker容器二:初識docker原理及命令

docker容器詳解二:初始docker原理及命令 docker原理 先來理解一下虛擬機器概念,廣義來說,虛擬機器是一種模擬系統,即在軟體層面上通過模擬硬體的輸入和輸出,讓虛擬機器的作業系統得以執行在

docker容器三:第一個docker程式

新建一個docker 下面來通過命令成功執行一個容器 通過docker images/image ls/docker list/等命令來檢視映象。 命令顯示的分別是: 映象名 標籤(在映象名

Array物件屬性9-forEach

Array物件屬性 Array物件屬性九( forEach() - ES6) forEach() 方法用於呼叫陣列的每個元素,並將元素傳遞給回撥函式。 注意: forEach() 對於空陣列是不會執行回撥函式的。 語法 array.forEach(func

Array 重排序

重排序需求: 當我們拿到一組資料之後,很大可能是用Array型別存放的。那麼我們在使用的過程中,很可能需要對資料內的元素進行重新排序,讓頁面顯示出我們需要的順序,或者讓資料按照我們需要的順序排列。 重排序方法: 1. reverse() 2. sort() rever

RAID-磁碟陣列簡單

歷史來源 1988 年美國加州大學伯克利分校的 D. A. Patterson 教授等首次在論文 “A Case of Redundant Array of Inexpensive Disks” 中提出了 RAID 概念 ,即廉價冗餘磁碟陣列( Redunda

動態陣列vector(Java和C++)

1.概念描述: vector名為動態陣列 有些時候想開一個數組,但是卻不知道應該開多大長度的數組合適,因為我們需要用到的陣列很可能會根據情況變動。這時候我們就需要用到動態陣列。所謂動態陣列,也就是不定

C99可變長陣列VLA

C90及C++的陣列物件定義是靜態聯編的,在編譯期就必須給定物件的完整資訊。但在程式設計過程中,我們常常遇到需要根據上下文環境來定義陣列的情況,在執行期才能確知陣列的長度。對於這種情況,C90及C++沒有什麼很好的辦法去解決(STL的方法除外),只能在堆中建立一個記憶體映像與需求陣列一樣的替代品,這種替