新・明解 C++で学ぶオブジェクト指向プログラミング 第11章 ベクトルライブラリ

新・明解C++で学ぶオブジェクト指向プログラミング

柴田 望洋 SBクリエイティブ 2018年09月18日頃
売り上げランキング :

by ヨメレバ

コンテナ=オブジェクトの格納庫

 

size_type型

ベクトルの要素数や添字を表すときは必ずこの型を使う。

 

#include <vector>
#include <iostream>

using namespace std;

int main()
{
vector<int> x;
cout << “input int\n”;
while(true) {
int temp;
cin >> temp;
if (temp==9999) break;
x.push_back(temp);
}
for ( vector<int>::size_type i=0; i<x.size() ; i++)
cout << “x[” << i << “] = ” << x[i] << ‘\n’ ;
}

 

要素数指定
vector<int> x2(16);
全要素が要素型のデフォルトコンストラクタで初期化される。

 

vector<int> x3(12,5);
この場合、初期値は5

 

vector<int> v;
v.capacity();
これで容量が得られる。

 

v.back();// 末尾要素が得られる
v.pop_back();//末尾要素を削除

v.assign(5, 3.14) // 5個の3.14 を代入

v.at() で不正アクセスで out_of_range 例外を送出する。

v.swap(w) 要素交換

v.clear() 要素削除

 

*要素数がプログラムの実行時に決定する配列や動的に変化する配列は、new で生成するのではなく vector<> で実装するとよい。

 

ベクトル2次元配列
vector<vector<int> > x(m, vector<int>(n));

 

凸凹配列
vector<vector<int> > x;

x.push_back(vector<int>(width);

 

単一挿入
x.insert(3, 55); x[3] に55を挿入

 

連続削除
x.erase(4,2);// x[4] ~ x[5] の2個削除

 

タイトルとURLをコピーしました