LoginSignup
5
2

More than 3 years have passed since last update.

c++ 初学者がvector.at()で配列要素を指定する理由

Posted at

c++の配列を要素指定する際に配列要素.at()または配列要素[i]で要素指定する方法があると思います。

よくc++やプログラミング初学者はvector.at()を使うことを推奨されるのですが、なぜなのか理由をみていきます。

環境

実行環境はGCC5.4.1です。(AtCoderのコードテストと同じ)

理由:配列要素[i]で要素指定するとエラー文が出力されない

以下のようなコードがあるとします。

#include <bits/stdc++.h>
using namespace std;

int main(){
    vector<int> vec(5);
    for(int i = 0;i<5;i++){
      cin >> vec.at(i);
      cout << vec.at(i) << endl;
    }

}

このコードは

1 2 3 4 5

のような入力を取ってきて出力するだけの簡単なコードです。

この配列要素を指定している箇所のvec.at()を

cin >> vec[i];
cout << vec[i] << endl;

と書く2通りの書き方があるのですが、vec[i]で要素指定した場合は例えば
セミコロンを書くのを忘れてエラーになった場合にエラー文が出力されません。

なので、c++の文法に慣れてないうちはvec.at()で書くことが一般的には推奨されています。

ですが、個人的にはやはりvec[i]で要素指定する方がタイプしやすく他の言語の人がみたときの可読性も上がるのでエラーが出たときに要素指定の箇所を適宜コメントアウトしてvec.at()に置き換えてエラー文を出力させるといった方法を取るのがいいなと思います。

以上です。

5
2
1

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
5
2