2015年5月22日金曜日

vector resize reserve(C++)

vectorresizereserveの動作についてまとめる。

//
// reserver_resize.cpp
// CplusplusPractice
//
// Created by masai on 2015/05/22.
// Copyright (c) 2015年 masai. All rights reserved.
//
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char* argv[]){
// デフォルトコンストラクタ
vector<int> vec_def;
cout << "vec_def size: " << vec_def.size() << ", capacity: " << vec_def.capacity() << endl;
// コンストラクタでサイズ指定
vector<int> vec_constructor(256);
cout << "vec_constructor size: " << vec_constructor.size() << ", capacity: " << vec_constructor.capacity() << endl;
// デフォルトコンストラクタで作成したvectorをreserveで変更
vec_def.reserve(128);
cout << "vec_def reserve size: " << vec_def.size() << ", capacity: " << vec_def.capacity() << endl;
// リサイズで変更
vec_def.resize(64);
cout << "vec_def resize size: " << vec_def.size() << ", capacity: " << vec_def.capacity() << endl;
// リサイズすると、size()も変更後と同じになる。出力すると、すべて0に初期化されていた。
for(auto& a : vec_def){
cout << a << " " ;
}
cout << endl;
// リサイズでは、初期化する値を決定することができる
vec_def.resize(128, 10);
cout << "vec_def resize size: " << vec_def.size() << ", capacity: " << vec_def.capacity() << endl;
for(auto& a : vec_def){
cout << a << " " ;
}
cout << endl;
}

0 件のコメント:

コメントを投稿