結構C++の機能的なところを使った問題が多くて面白い.(ただ,プログラムの一部分を埋める問題ばかりで,少しイライラ)
いっぱいググりながらコードを書いたので,参考にしたリンクを以下に… と思ったが,思った以上にリンクが多かったので一番最後で紹介する.
Variable Sized Arrays
いきなり「おいおいvector使わせてくれよ!」みたいな問題でした.
長さがマチマチのリストから,指定されたインデックスの要素を取ってくる問題でした.
長さがマチマチ… 動的配列… vectorで楽に作ればいいよな…
→ !!includeするものを編集できない!!
というわけで,ポインタの配列を使うんですが,これがまた難しく,悪戦苦闘….
結局考えるよりググったほうが早いという結論になっていまい,悲しかったです.
Box It!
submit
https://www.hackerrank.com/contests/code-cpp-3/challenges/box-it/submissions/code/4801862
実装がめんどくさかったので,さっき解いた.
クラスの基礎をやってみましょう的なあれで,コンストラクタとかデストラクタとか,クラス内で演算子オーバーロードの処理を書いたりだとか,これも今までやったことがない感じで学びがあった.
ただ,体積の計算でオーバーフローしていることに気づかず…(long longでキャストするだけだった)
Accessing Inherited Functions
これは問題の意図をよく理解できずという感じだった.ただ多重継承してその中のメソッドを呼び出せるようにすれば良い? ッて感じなんだろうか,これで想定解放なのかどうかも不明.
Virtual Functions
submit
https://www.hackerrank.com/contests/code-cpp-3/challenges/virtual-functions/submissions/code/4788726
今度は"""オーバーライド"""を使う問題.個人的にはポリモーフィズムとか,継承とかその辺りのオブジェクト指向的なところはJavaで学んでいたからあとは書き方の問題でした.まる.
というわけで,コンテスト中に4問と,あとで1問解いて計5問ときましたとさ.
演算子オーバーロードによる動作の再定義とか,今まで自分がやってきたプログラミング言語ではできなかったので,いい経験になりました.
21 / 300
以下.長くなってしまった参考にしたリンクなど.
C++マニアック,オペレータのオーバーロード,operator overload,演算子のオーバーロード,演算子,C++入門,C++言語講座
出力用シフト演算子(<<)のオーバーロード | プログラマーズ雑記帳
C++ - 静的ポリモーフィズムの安全で簡単な実装 -動的から静的にしてパフォーマンス向上- - Qiita
以下はもっと基本的なレベルのこと.
○○○○に怖いものなんてない!!: std::accumulateでvectorの合計や平均値を出す(std::accumulateの第3引数について考察もあり)
C++11で数字→文字列はstd::to_string()、文字列→数字はstd::stoi()とかstd::stod()とか - minus9d's diary
C++で文字列のsplitにstringstreamが使える気がする | taichino.com
C++の文字列操作 その2 - minus9d's diary
vectorで多次元配列を作る場合の初期化 - naoya_t@topcoder - TopCoder部
今すぐ使える C++ コーディングテクニック集 - torus711 のアレ
C++: 配列の要素を逆順に並べ替える - Sarabande.jp