C++スコーラ
vector
最終更新:
Bot(ページ名リンク)
-
view
Vector
vectorとは、必要に応じて自動的にサイズが変更される動的配列です。
通常の配列と同じように扱うことができるだけでなく、
サイズ情報の取得やデータの挿入削除なども可能です。
通常の配列と同じように扱うことができるだけでなく、
サイズ情報の取得やデータの挿入削除なども可能です。
Vectorの用意
vectorを使うにはインクルードが必要
#include<vector>
宣言は以下のように行う
std::vector<型名> 名前;
要素の追加
末尾への追加
ベクター.push_back([[オブジェクト]]);
※以下 < と > の内側にスペースが有るのはWikiのタグ認識回避のためであり、実際はスペースを開ける必要はない
vector< string > v; v.push_back("Hello "); v.push_back("world"); v.push_back("!!");
要素の削除
pop_back
末尾の要素を削除します。
vector<int> v{0, 1, 2, 3, 4}; v.pop_back(); // 末尾データ(この場合は 4)を削除
erase
任意の場所を削除します。
任意の位置の要素を一つだけ削除
vector<int> v{0, 1, 2, 3, 4}; v.erase(v.begin() + 2); // 3番目のデータ(この場合は 2)を削除
※begin()はイテレータを呼ばれるポインタのようなもので、
その配列の最初の要素の位置を返します。
その配列の最初の要素の位置を返します。
任意の範囲の要素を削除
vector<int> v{0, 1, 2, 3, 4}; v.erase(v.begin() + 1, v.begin() + 3); // 1, 3を削除
要素へのアクセス
[ ]演算子を使う方法
通常の配列と同じようにv[0]のような使い方もできます。
cout << v.size() << endl; // vの要素数を表示 for(int i=0, n=v.size(); i < n; i++){ cout << v[i] << endl; // vの内容を表示 }
atを使う方法
cout << v.size() << endl; for(int i=0,n=v.size(); i < n; i++){ cout << v.at(i) << endl; }
イテレータを使う方法
whileによるループ
vector< string >::iterator it; it = v.begin(); while ( it != v.end() ){ cout << *it << endl; it++; }
forによるループ
for ( vector< string >::iterator it = v.begin(), end = v.end(); it < end ; it++ ){ cout << *it << endl; }
記述例
#include <vector> #include <iostream> #include <string> int main(){ using namespace std; vector< string > v; v.push_back("Hello "); v.push_back("world"); v.push_back("!!"); cout << v.size() << endl; for(int i=0, n=v.size(); i < n; i++){ cout << v.at(i) << endl; } return 0; }
問題
問題1
at、イテレータによる要素参照を関数化せよ。
問題2
問題3
整数型のベクターを用意せよ。
1~5までのランダムな数値を5~10個ベクターに格納し、
格納された数値の合計を表示せよ。
1~5までのランダムな数値を5~10個ベクターに格納し、
格納された数値の合計を表示せよ。
testcounter
合計 -
今日 -
昨日 -
合計 -
今日 -
昨日 -