目的
begin()を使っていたら躓いたので、begin()の使い方を確かめてみる。
begin()は先頭要素を指すイテレータを取得する。
イテレータとはポインタのようなもの。
まず、1次元配列の場合
begin1.cpp
#include <cstdio>
#include <vector>
using namespace std;
int main() {
vector <int> A{1, 2, 3};
vector<int>::iterator itr;
itr = B.begin();
printf("Bの最初の値は : %d\n", *itr); //Bの最初の値を表示
}
出力結果
Bの最初の値は : 1
次に2次元配列の場合
begin2.cpp
#include <cstdio>
#include <vector>
using namespace std;
int main() {
vector<vector <int> > B{{1, 2, 3},
{4, 5, 6}};
vector<int>::iterator itr2;
itr2 = B[0].begin();
printf("B[0]の始め : %d\n", *itr2); //B[0]の始めを表示
}
出力結果
B[0]の始め : 1
ちなみに以下のようにするとSegmentation faultとなる。
itr2 = B.begin();
printf("Bの始め : %d\n", *itr2); //エラー
itr2 = B.begin().begin();
printf("B[0]の始め : %d\n", *itr2); //エラー