C++ 配列について

〇(Cの配列)

・宣言

int a[10];

int a[4] = {1, 2, 3, 4};

int a = {1, 2, 3, 4};

・サイズ

sizeof(a)/sizeof(*a)

 

※配列とポインターについて

http://www9.plala.or.jp/sgwr-t/c/sec10-2.html 

 

〇char型

・1バイト

・ASCIIコード(アスキーコード)という文字コードに変換できる→16進数になる
例 statistic_cast<int>('A') …65になる

・文字列とポインタの関係
'ABC'のような文字列は実行時にABCの順にメモリ上に置かれ、Cの次は'\0'が置かれる。
'ABC'はconst char[4]で、先頭文字'A'のアドレスに変換される。
const char *str;
str='ABC';
とすると
*(str+i)で'A''B''C'をi=0~2で表せる。
str[i]でもいい
*('ABC'+i)や'ABC'[i]でもいい

 

 

〇(Cの多次元配列)

・宣言

int a[3][4];

int a[3][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

int a[4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};→最初の添え字のみ省略可能

 

 

〇std::array(C++11から追加されたもの)

通常配列では、std::vector の size() や back() などの便利な機能が使えない。 それらを使いたいけど、サイズは固定でいいので vector を使うほどでもない。ってときは std::array の出番だ。

・インクルード

#include<array> 

 

〇std::vector

・インクルード

#include<vector

・宣言

std::vector<型名> 変数名;

std::vector<型名> 変数名(要素数);

std::vector<型名> 変数名(要素数,値); →同じ値をすべての要素に入れる

std::vector<型名> 変数名= {要素1,要素2}; →C++11以降可能に

・サイズ

vec.size()

 

 

〇list