【競プロ精進ログ】APG4b編<3-2>

zuka

ついに競技プログラミングを始めました!

本記事は,管理人の競技プロ精進日記としてログを取ったものです。モチベーションを爆上げするために,積極的にアウトプットしていく作戦です。これから競技プログラミングを始めようと考えている人や,なんとなく敷居が高いと感じている人の参考になれば嬉しく思います。その他の記事は以下をご覧ください。

目次

本記事の概要

Atcoderが公表しているc++の入門記事の内容を1からさらっていくものです。今回は3.02.pair/tupleとautoです。

実装

#include <bits/stdc++.h>
#define _GLIBCXX_DEBUG
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
using namespace std;
using pii = pair<int, int>;

int main() {
  int N;
  cin >> N;
  // pair<int, int>の配列
  // 上でマクロを定義している
  vector<pii> AB(N);
  rep(i, N){
    cin >> AB[i].second;
    cin >> AB[i].first;
  }

  // 小さい順にソート
  sort(AB.begin(), AB.end());
  rep(i, N){
    int a, b = 0;

    // tieでpairを解く
    tie(b, a) = AB[i];
    cout << a << " " << b << endl;
  }
}

ポイント

今回おさえるべき内容

 pair型を使えばデータの集まりを見通しよく扱える

 pairmake_pairで生成できる

 autoで変数宣言すれば自動的に型を決めてくれる

変数のペアを保持できる型にpair型があります。pairmake_pairを使って生成でき,.firstで最初の要素,.secondで2つ目の要素にアクセスできます。tieを使えばpairから1つずつの変数を取り出すことができます。

また,変数宣言の際に便利な記法にautoがあります。例えばauto x = "test"とした場合にはxstring型になります。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

※ Please enter your comments in Japanese to distinguish from spam.

目次