中文亂碼處理 1.問題拋出 當表單提交的數據為中文時,會出現亂碼: (1)Monster.java: package com.li.web.datavalid.entity; import org.hibernate.validator.constraints.Email; import org.h ...
此篇隨筆將示範array容器的基本操作
1.介紹
array容器在C++普通數組的基礎上,添加了一些函數。在使用上,它比普通數組更安全。
2.頭文件及命名空間
1 #include<array> 2 using namespace std;
3.舉例
array<double,10> arr;//聲明一個裝有10個double型元素的數組容器,容器名為arr
4.初始化
1 //array容器不會像普通數組那樣進行預設初始化 2 array<int,10> arr01 {};//全部初始化為0 3 array<int,10> arr02 {1,2,3};//前三個元素初始化為1,2,3, 其他元素初始化為0
//上述初始化可以加等號,但是務必註意必須顯性初始化,異於普通數組的預設初始化
5.遍歷
//法1 數組名[下標] #include<iostream> #include<array> using namespace std; int main(){ array<int,10> arr {1,3,5,7,9,2,4,6,8,10}; for (size_t i = 0; i < arr.size(); i++) { cout<<arr[i]<<' '; } return 0; }
//法2 迭代器 #include<iostream> #include<array> using namespace std; int main(){ array<int,10> arr {1,3,5,7,9,2,4,6,8,10}; // for (array<int,10>::iterator it = arr.begin(); it != arr.end(); it++) // { // cout<<*it<<' '; // } for (auto it = arr.begin(); it != arr.end(); it++) { cout<<*it<<' '; } return 0; }
6.快速求和:accumulate()函數
使用accumulate()函數實現數組快速求和
#include<iostream> #include<array> #include<numeric>//accumulate函數 using namespace std; array<int,10> arr {1,3,5,7,9,2,4,6,8,10}; int main(){ cout<<accumulate(arr.begin(),arr.end(),0);//第三個參數相當於int sum = 0 的初始值0 return 0; } //輸出:55 //若把第三個參數改為3,那麼輸出將會是58(55+3=58).
7.size()函數
//獲取容器內元素的個數 #include<iostream> #include<array> using namespace std; array<int,10> arr={1,3,5,7,9,2,4,6,8,10}; int main(){ cout<<"arr內元素個數為:"<<arr.size()<<endl; return 0; } //輸出:arr內元素個數為:10
8.empty()函數
//若容器為空則返回真 #include<iostream> #include<array> using namespace std; array<int,0> arr;//第二個參數為0,容器為空 int main(){ if (arr.empty()) { cout<<"arr is empty"<<endl; } return 0; } //輸出:arr is empty
9.fill()函數
//給所有元素初始化為特定值 #include<iostream> #include<array> using namespace std; array<int,5> arr; int main(){ arr.fill(-1); for (size_t i = 0; i < arr.size(); i++) { cout<<arr[i]<<" "; } return 0; } //輸出:-1 -1 -1 -1 -1