Quantcast
Channel: 配列タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 821

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

$
0
0

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()に置き換えてエラー文を出力させるといった方法を取るのがいいなと思います。

以上です。


Viewing all articles
Browse latest Browse all 821

Latest Images

Trending Articles