[C++] 標準動的配列

  情報系, プログラミング, C++

動的配列処理

C++では,動的配列を使用する方法として,「new演算子」を使用した方法,「vector」ライブラリを使用した方法,C言語と同様に「malloc」を使用した方法がある.


vectorライブラリ

C++では,標準で動的配列の「vector型」が用意されている.vector型を使用するには,「vector」をincludeする必要がある.

#include <vector>
int main()
{
    // vector<変数型> 変数名;
    std::vector<int> vec1;        // int型の動的配列を宣言
    std::vector<int> vec2(5);     // int型の動的配列を5つの要素を用意して宣言
    std::vector<int> vec3(5,3);   // int型の動的配列を5つの要素を用意して、すべて3で初期化
  
    std::vector<std::vector<int>> vec4;                              // int型の2次元動的配列を宣言
    std::vector<std::vector<int>> vec5(5,std::vector<int>(5));       // int型の2次元動的配列を5x5の要素を用意して宣言
    std::vector<std::vector<int>> vec6(5,std::vector<int>(5,3));     // int型の2次元動的配列を5x5の要素を用意して、すべて3で初期化
}

要素へのアクセス

vector型の要素には,通常の配列と同じようにアクセスできる.また,「atメソッド」を使用した方法もある.

#include <vector>
int main()
{
    std::vector<int> vec1(5,10);
  
    // 通常の配列と同じ方法
    // メリット    :高速処理ができる
    // デメリット  :用意されていない要素にアクセスしたときにエラーがでない
    // vec1[i]    :i要素にアクセスする
    vec1[2]=15;
  
    // atメソッドを使用した方法
    // メリット    :用意されていない要素にアクセスしたときにエラーがでる
    // デメリット  :処理が[]に比べて遅い
    // at(i)      :i要素にアクセスする
    vec1.at(0)=2;
}

要素数の変更

vector型では,「resizeメソッド」を使用することで要素数を変更することができる.

#include <vector>
int main()
{
    std::vector<int> vec1;
  
    // resize(n)     要素数をnに変更
    vec1.resize(100);
}

要素の追加

vector型では,「push_backメソッド」を使用することで要素を追加することができる.

#include <vector>
int main()
{
    std::vector<int> vec1(5,5);
  
    // push_back(i)    iを配列の最後に連結
    vec1.push_back(1);
}

要素数の取得

vector型では,「sizeメソッド」を使用することで要素数を取得することができる.

#include <vector>
int main()
{
    // vector型を作成
    std::vector vec(5,0);
  
    // size()で要素数が呼び出される
    int s=vec.size();
}

LEAVE A COMMENT