【C++】配列および基本動作
24819 ワード
配列および一般的な操作配列: 配列宣言: 配列初期化: 配列の一般的な操作: vector初期化: vector一般的な操作: ps:詳細は、一般的な配列構造とアルゴリズムを参照してください.
配列:
配列とvector:要素の個数が不明な場合はvectorを使用します.
配列宣言:
配列宣言:a[d],aは配列名,dは配列の次元(次元が0より大きく、定数式である必要がある)定数式:値は変更されず、コンパイルプロセスで計算結果が得られる式.
複雑な配列の宣言:デフォルトでは、タイプ修飾子は右から左に順にバインドされます(内側から外側)
配列の初期化:
1 D配列の初期化:
2 D配列の初期化:
配列の一般的な操作:
配列要素へのアクセス:
配列のサイズを返します.
コピーと割り当ては許可されていません:
vector初期化:
vectorの一般的な操作:
vector共通関数の要約: push_back配列の最後にデータ を追加 insert増加 pop_back配列の最後のデータ を削除 clear現在のvector をクリア erase削除 atは、番号付け位置のデータ を得る. front得られた配列ヘッダの参照(begin,endはポインタを返す) backは配列の最後のセルの参照 を得る. beginは、最初の要素のポインタ を返す. endは、最後の要素のポインタ を返す. size現在使用するデータのサイズ max_size最大許容vector要素数 capacity vectorが実際に収容できる大きさ empty vectorが空かどうかを判断する swap交換 assign現在のvector をカッコ内の値で設定する.
vector常用関数の詳細:1.関数push_を追加back() insert()
2.関数pop_を削除back()erase()clear()はvector内のデータしか消去できませんが、メモリ領域は解放されていません.メモリ領域を解放するにはarr.swap(vector()を使用します.
3.遍歴関数at()front()back()begin()end()
4.判定関数empty()はboolを返すが、0,1でもよい
5.サイズ関数size()vectorの要素の個数capacity()vectorが実際に収容できるサイズmax_Size()最大許容vector要素数値
6.その他の関数swap()assign()カッコ内の値を使用して現在のvectorを設定
配列:
配列とvector:要素の個数が不明な場合はvectorを使用します.
配列宣言:
配列宣言:a[d],aは配列名,dは配列の次元(次元が0より大きく、定数式である必要がある)定数式:値は変更されず、コンパイルプロセスで計算結果が得られる式.
// :
const int max = 20; //
const int limit = max+1; //
int size = 15; // , int const int
const int a = get_size(); // ,a ,
複雑な配列の宣言:デフォルトでは、タイプ修飾子は右から左に順にバインドされます(内側から外側)
int *a[10]; // 10 int ( )
int (*a)[10]; // 10 ( )
int *(&a)[10]; //a , 10
配列の初期化:
1 D配列の初期化:
// :
int value[10];
int value[10]={1,2};
double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
// :
int* array = new int[100];
delete []array;
int* array = new int[100]{1,2}; //
delete []array;
2 D配列の初期化:
// :
int a[5][6];
// :
int (*arr)[6]= new int[5][6];
delete[] arr;
配列の一般的な操作:
配列要素へのアクセス:
double a = b[9];
配列のサイズを返します.
int a[]={1,2,3,4};
int num = sizeof(a)/sizeof(a[0]);
コピーと割り当ては許可されていません:
int a[]={1,2,3};
int b[]=a; //
b=a; //
vector初期化:
vector<int> vec; // int
vector<int> vec(5); // 5 int
vector<int> vec(10, 1); // 10 1
vector<int> tmp;
vector<int> vec(tmp); // tmp vec
vector<int> tmp(vec.begin(), vec.begin() + 3); // vec 0 2 tmp
vectorの一般的な操作:
vector共通関数の要約:
vector常用関数の詳細:1.関数push_を追加back() insert()
// push_back():
vector<int> arr;
for (int i = 0; i < 10; i++){
arr.push_back(i);
}
// insert()
v.insert(v.begin(),8); // 。
v.insert(v.begin()+2,1);//
v.insert(v.end(),3,1);// 3 1
v.insert(v.end(),v2.begin(),v2.end());// v2
2.関数pop_を削除back()erase()clear()はvector内のデータしか消去できませんが、メモリ領域は解放されていません.メモリ領域を解放するにはarr.swap(vector()を使用します.
// pop_back()
arr.pop_back();
// erase()
arr.erase(arr.begin()+3); // 3
arr.erase(arr.begin()+2,arr.begin()+4); // arr [2,3) ( 2 )
// clear()
arr.clear();
3.遍歴関数at()front()back()begin()end()
// at()
arr.at(3); //vector
// front() back()
int front = arr.front();
int back= arr.back();
// begin() end()
vector<int>::iterator iter;
iter = arr.begin()+4;
cout << *iter << endl;
// begin()
for(vector<int>::iterator iter=arr.begin();iter!=arr.end();++iter){
cout<<" "<<*iter;
}
4.判定関数empty()はboolを返すが、0,1でもよい
// empty()
cout << boolalpha; // 0/1
cout << " arr.empty(): " << arr.empty() << endl;
5.サイズ関数size()vectorの要素の個数capacity()vectorが実際に収容できるサイズmax_Size()最大許容vector要素数値
int size = arr.size();
int cap = arr.capacity();
int max = arr.max_size();
6.その他の関数swap()assign()カッコ内の値を使用して現在のvectorを設定
// swap()
vector<int> arr(4,10);
arr.swap(vector<int> ());
vector<int>().swap(arr);
// assign()
vector<int> arr;
vetor<int> first(4,10);
arr.assign(7,3); // 3
arr.assign(first.begin(),first.end());