Aizu Online Judge(AOJ)の過去問から、その提出コードの解答例です。
・問題 "Vector"
https://onlinejudge.u-aizu.ac.jp/problems/ITP2_1_A
整数を保持する可変長配列A={a0,a1,...}に対して、以下の操作を行ってください。
・pushBack(x):Aの末尾に整数xを挿入する
・randomAccess(p):Aの要素apの値を出力する
・popBack(): Aの末尾の要素を削除する
Aは0-オリジンでインデックスが付けられ、初期状態では空とします。
空の配列に対して、randomAccess や popBack操作が行われることはありません。
各randomAccess操作ごとに、apの値を1行に出力してください。
僕が作成、提出したコードは、以下のとおりです。
Aizu Online Judge in C++ #ITP2_1_A : Vector
/* Aizu Online Judge in C++ #ITP2_1_A : Vector https://onlinejudge.u-aizu.ac.jp/problems/ITP2_1_A 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; int main(void){ int q; cin>>q; vector<int> query(q); vector<int> a; for(int i=0;i<q;i++){ cin>>query[i]; if(query[i]==0){ int x; cin>>x; a.push_back(x); }else if(query[i]==1){ int p; cin>>p; cout<<a[p]<<endl; }else{ a.pop_back(); } } return 0; }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/