LoginSignup
0
1

More than 5 years have passed since last update.

Vector

Last updated at Posted at 2018-08-14

vector型とは
c++で配列の長さを変えることができる配列を扱うためのクラス
また、この長さを変えることができる配列のことを可変長配列という
vectorをincludeするためにはvectorというライブラリをincludeする。
vectorは以下のように宣言する
vector<型名>変数名;
要素を先に確保して、さらに全ての要素を同じ値で初期化したい時は
vector<型名>変数名(要素数);
vector<型名>変数名(要素数,値);

c++11以降は配列のように直接値を入れることができる
vector<型名>変数名={要素1,要素2};
また、vectorで二次元以上の配列を宣言するには
vector>変数名;

int ar[] = {1, 2, 3, 4, 5, 6, 7};
vector v{9, 8};
v.assign(&ar[0], &ar[3]); // v の内容は {1, 2, 3} になる

vector v{9, 8};
v.assign(3, 1); // v の内容は {1, 1, 1} になる

const int SZ = 10; // 要素数
std::vectorv(SZ); // 指定要素数で、vector を生成
for(int i = 0; i < SZ; ++i)
v[i] = i; // 要素を 0, 1, 2, 3, ... 9 に設定

const int SZ = 10; // 要素数
std::vectorv(SZ); // 指定要素数で、vector を生成
for(int i = 0; i < SZ; ++i)
v.at(i) = i; // 要素を 0, 1, 2, 3, ... 9 に設定

std::vector v{1, 2, 3, 4};
std::vector::iterator itr = v.begin(); // 最初の要素を指すイテレータ
std::cout << *itr << "\n"; // 最初の要素の値を表示
++itr; // 次の要素に移動
*itr = 9; // 二番めの要素の値を 9 に変更

std::vector v(100);
for(int i = 0; i < 100; ++i)
v[i] = rand() % 100;

初期値 0 で、10個の int型 vector オブジェクトを生成し、[5] の位置に 7 を挿入するコードを書きなさい

std::vector v(10, 0);
v.insert(v.begin() + 5, 7);

std::vector v{3, 1, 4, 1, 5};
v.pop_back(); // 末尾データ(この場合は 5)を削除

std::vector v{3, 1, 4, 1, 5};
int last = v.back(); // 末尾データを取り出しておく
v.pop_back(); // 末尾データ(この場合は 5)を削除

std::vector v, z;
v, z にデータを追加
v.swap(z); // v と z の内容を入れ替える

std::vector v{3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
std::cout << std::count(v.begin(), v.end(), 5) << "\n"; // 要素5の数を返す

include

.....
std::vector v{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
std::cout << std::accumulate(v.begin(), v.end(), 0) << "\n";
↑最初から最後まで要素を全加算最後の0は初期値で通常は0

include

.....
std::vector v{3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
std::sort(v.begin(), v.end());
↑まあ普通のソート

std::vector v{3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
std::reverse(v.begin(), v.end()); // 順序反転
for(auto x : v ) std::cout << x << " ";
std::cout << "\n";
↑要素の順番を逆にする

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1