template < class t, size_t n > class array;陣列是固定大小的序列容器:它們包含以嚴格線性順序排列的特定數量的元素。在內部,陣列不保留除其包含的元素之外的任何資料(甚至它的大小,這是乙個模板引數,在編譯時固定)它在儲存大小方面與使用語言括號語法宣告的普通陣列一樣高效。這個類只是為它新增了一層成員函式和全域性函式,因此陣列可以用作標準容器。與其他標準容器不同,陣列具有固定大小,並且不通過分配器管理其元素的分配。它們是封裝固定大小元素陣列的聚合型別。 因此,它們不能動態擴充套件或收縮。零大小的陣列是有效的,但不應取消引用它們。
std::array::iterator it;//迭代器
for(it = my_array.begin(); it != my_array.end(); ++it)
std::array::reverse_iterator r_it;//反向迭代器
for(r_it = my_array.rbegin(); r_it != my_array.rend(); ++r_it)
} std::array::const_iterator c_it;//常量(const)迭代器
for(c_it = my_array.cbegin(); c_it != my_array.cend(); ++c_it)
std::array::const_reverse_iterator c_r_it;//常量反向迭代器
cout << "陣列的元素個數" << my_array.size() << endl;//返回陣列的元素個數
cout << "陣列的最大元素個數" << my_array.max_size() << endl;//由於array的大小固定,因此size()、max_size()大小一致
cout << (my_array.empty() ? "陣列為空" : "陣列不為空") << endl;
return 0;
}結果:
陣列的元素個數5
陣列的最大元素個數5
陣列不為空
cout << char_array.data() << endl;//.data()返回array第乙個元素的位址
return 0;
}
結果:
1
10陣列第乙個元素: 1
陣列最後乙個元素: 13
my_array.fill(2);//將陣列元素全部賦為乙個值,如果之前有值,將會被覆蓋掉
for(auto i : my_array)
my_array.swap(your_array);//交換兩個格式一樣array所有元素的值
for(auto i : your_array)
for(auto i : my_array)
return 0;
}
結果;
}結果:
a and b are equal
b and c are not equal
b is less than c
c is greater than b
a is less than or equal to b
a is greater than or equal to b
比較兩個array之間的大小關係,「==」、「<=」、「>=」、「!=」是對每乙個元素進行比較,如果所有元素都符合才為真。「」則比較第乙個不相等的元素。 c STL容器之map容器
1.map中所有的元素都是pair 2.pair元素中第乙個元素為key,第二個元素為value 3.所有元素都會根據鍵值自動排序 4.map中不允許有重複的鍵,multimap中允許有重複的鍵 優點 可以根據key快速的找到value 一 建構函式 mapmp map const map mp 二...
c STL容器之deque容器
deque是雙端陣列。deque和vector的區別 deque內部工作原理 deque內部有個中控器,維護每段緩衝區中的內容,緩衝區中存放著真實資料。中控器維護的是每個緩衝區的位址,使得使用每個deque時像一塊連續的記憶體空間。deque容器的迭代器是支援隨機訪問的。一 deque建構函式 de...
C STL之堆疊容器
stack堆疊是乙個後進先出的線性表,插入和刪除都只能在表一端進行,插入元素的一端成為棧頂 stack top 而另一端則稱為棧底 stack bottom 插入元素稱為入棧 push 刪除元素稱為出棧或彈棧 pop 使用該容器時需要包含 include 標頭檔案 定義stack物件的示例 如下 s...