0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🎄 Qiita Advent Calendar 2024 🎄

この記事は,Qiita Advent Calendar 2024ひとりアドベントカレンダー by Hietan というカレンダーの2日目の記事です.

アウトプット力の強化を目的に,25日分すべて1人で書ききるというチャレンジをしています.是非他の記事もご覧ください.


注:以下では,using namespace std; の記述がある前提でソースコードを記載しています.

みなさん,競技プログラミングはやっていますか?
競技プログラミングでは速度の速さから C++ が使われることが多いですが,vector の記述量が多くて大変です.

特に2次元配列を vector で作成するとき,デフォルトだと次のような記述になります.

vector<vector<int>> arr(i, vector<int>(j, 0));

なんとも長い...
vector と3回も記述しています.

そこで,以下のクラスを作成して記述量を削減します.

template <typename T>
class V2 : public vector<vector<T>> {
    public:
        V2(int i, int j): vector<vector<T>>(i, vector<T>(j)) {}
        V2(int i, int j, T x): vector<vector<T>>(i, vector<T>(j, x)) {}
};

これで,2次元配列を宣言するときは,

V2<int> arr(i, j, 0);

とてもシンプルになりました!

仕組みもコンストラクタを作成しているだけで非常にシンプルです.
これで vector と大量に打つ手間を省けますね.

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?