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<型名> 変数名= {要素1,要素2}; →C++11以降可能に
・サイズ
vec.size()
〇list