2011年10月30日日曜日

how_to_"vector"

vectorの使い方メモ

【.hファイル】
float型のベクターを使う場合

//宣言
vector <flaot> vec;

【.cppファイル】

//新しく作る
vec.push_back( float() );
int last = vec.size() - 1;
vec[last] = 10.f; // 入れたい値を入れる

// 全て削除
vec.clear();

//末尾の要素を削除
vec.pop_back();

//要素の値を使用する
for(int i = 0; i < vec.size(); i++)
{
    float a = vec[i];
}

以上はほんの基礎の基礎なので、ある条件を満たす要素にだけアクセスしたい場合などはイテレータを使う。イテレータの使い方はまた後ほど。

【追記 2011.11.26】
ここが参考になります
http://www.cppll.jp/cppreference/cppvector.html

【追記 2012.2.18】
参考サイト C++標準ライブラリ
http://www.geocities.jp/ky_webid/cpp/library/021.html

ある条件を満たす要素の削除

【.hファイル】:叙述関数の定義
class Check
{
   bool operator()(const particle _vec) // ベクターを作成する型をparticleとする
   {
      return _vec.life <= 0; // lifeが0以下のものを消すとする
   }
};


【.cppファイル】
// remove_if関数を使う
vactor<vec>iterator end_it = remove_if( vec.begin(), vec.end(), Check() ); // ここで条件に該当する要素を抽出する

// 本当の意味での削除を行う
vec.erase( end_it, vec.end() );


以上でできるが、イテレーターが何なのかまだよくわかっていないし、叙述関数も全然分からない。

また、機会があれば勉強したい。

0 件のコメント:

コメントを投稿