LoginSignup
3
3

More than 3 years have passed since last update.

std::vectorの生成方法など

Last updated at Posted at 2019-06-10

まず、std::vectorとは,配列の長さを変えることのできる可変長配列です

vectorの生成の仕方

vector.cpp
#include<iostream>
#include<vector>

using namespace std;

int main()
{
    vector<int> na(5,1); //配列int型 na[5]の中身を1で初期化//11111と表示される
    for (int i = 0; i < na.size(); i++)
    {
        cout << na.at(i); //配列naの中身を表示//1で初期化されているため、すべて1になる
    }
    return 0;
}

vectorの生成方法(宣言)

std::vector<型> 変数名(配列サイズ,初期値)!!初期値、配列サイズは定義しなくてもOK!!(ない場合配列サイズは0で初期化されます)

Vectorの要素の中身の書き換え方

at.cpp
#include<iostream>
#include<vector>

using namespace std;

int main()
{
    std::vector<int> na(5,1);
    na.at(1) = 3;//添え字番号1の要素を3に書き換える
    for (int i = 0; i < na.size(); i++)
    {
        cout << na.at(i);//表示の結果(13111 )
    }
    return 0;
}

変数名.at(添え字番号)でアクセス可能 (中身の書き換え、中身の表示などに使える)

要素の消し方

pop_back.cpp
#include<iostream>
#include<vector>

using namespace std;

int main()
{
    std::vector<int> na(5,1);

    na.pop_back();//末尾の要素を削除//forループで配列のサイズ文ループすると、全要素削除できる!

    for (int i = 0; i < na.size(); i++)
    {
        cout << na.at(i);//pop_backされたので、要素が1減っている(結果→1111と表示される)
    }

    return 0;
}

配列名.pop_back(); 末尾の要素削除可能

配列サイズの取得

size.cpp
#include<iostream>
#include<vector>

using namespace std;

int main()
{
    std::vector<int> na(5,1);


    for (int i = 0; i < na.size(); i++)//配列サイズを取得して、サイズ分ループ
    {
        cout << na.at(i);
    }


    return 0;
}

配列名.size();配列のサイズ取得

サイズ取得してるループしたほうが、配列の長さが変わったときにすぐ対応できる!

nijigen.cpp
#include <iostream>
#include <vector>
using namespace std;
int main(int argc, char const* argv[])
{

        vector< vector<int> > v (4, vector<int>(4));//4*4のint型配列の生成

        for (int i = 0; i <v.size(); i++) {
                for (int j = 0; j < v[i].size(); j++) {
                        v[i][j] = i * j;//配列番号の縦*横かけたものを代入
                }
        }
        for(int i=0;i<v.size();i++){
            for(int j=0;j<v[i].size();j++){
                cout<<v[i][j]<<" ";//表示
            }
            cout<<endl;//改行
        }
        return 0;
}

vetcor<vector<型名>> 変数名(配列サイズ,vector<型名>(配列サイズ));で二次元配列生成

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3