🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

4回答

1014閲覧

atcoderで競技プログラミングをはじめたのですが

goro_gnm

総合スコア42

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

1クリップ

投稿2019/12/07 11:14

最近atcoderを始め、レートをあげるためにatcoder problemsをやっている(言語はc++)のですが、他の人のコードを見てみるとよくわからない表現が多発していて全然読めないことが多発します。
よくわからない表現があるとその調べ方もわからなかったりして、進めなくなるのですが、これはまずc++についての勉強不足ということでしょうか。

それとも、atcoderで上位になるような人は(技巧的なものが多かったりして?)初心者は読めなくても仕方がないみたいなところがあったりするのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

ベストアンサー

こんにちは。

C++のコードの中には超難解なコードも少なくありません。「C++のコードを読めない=勉強不足」と言い出すと、私も含めてほぼ全てのC++プログラマーは勉強不足と思います。(boostのコードや中3女子氏のコード(constexpr)、でちまる氏のコード(プリプロセッサ)を全てスムーズに読める人ってどれくらいいるのだろう?)

つまり、goro_gnmさんが読めなかったコードを見てみないと、基本を理解していないから読めないのか、C++の各種の難解な機能を理解していないから読めないのか分かりません。
基本については体系的に勉強した方が良いです。C++の応用については体系的な勉強はなかなか厳しいと思います。「経験を積む」範疇に属すると思います。

江添亮の詳説C++17は標準規格の解説書ですから、応用的な機能についても漏れなく記載されていると思います。
問題は、目の前にあるコードが、これに記載されているどの項目の機能を使っているのか判断できないと適切な項目を読むことができないのです。仮に適切な項目を開いていても、目の前のコードがそれを使っていることを判断することも実は難しい場合があります。

読めないコードを1つ1つとことん追求して経験を積むことで少しづつ読めるようになるのではないかと思います。該当のコードを1つここに上げるて問題ない(著作権や規約的に)なら、提示して見るのも手かもしれません。


因みに、boostは標準ライブラリに採用されることも多い非常にメジャーなライブラリです。
ああ、STLのコード自体、超高難易度です。

投稿2019/12/08 04:40

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

よくわからない表現があるとその調べ方もわからなかったりして、進めなくなる

少なくとも競技プログラミングはACさえすれば正義なので、その表現を必ずしも使う必要は無いです。
よくわからない表現は後回しにしても全然問題無いと思います。

競プロで使われている表現の多くは一般的な開発ではバッドノウハウな事も少なくないですし。

投稿2019/12/07 12:34

maai

総合スコア463

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

過去の質問を見る限り、
C++の構文を、勉強するのが必要と思いました。・・・初歩的なことで、理解不足があると思われます。

投稿2019/12/07 13:00

cateye

総合スコア6851

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goro_gnm

2019/12/08 00:01

例えばどのようなものでしょうか。
guest

0

勉強不足だ、ということになろうかと思いますが、
C++の言語仕様というのは膨大なものなので、おいおい覚えていけばいいと思いますよ

投稿2019/12/07 11:18

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

goro_gnm

2019/12/07 11:24

そういう場合は、c++についての本をもっと読んで体系的に勉強するのが良いのでしょうか。 わからない部分だけネットでちょちょいと調べる、みたいに器用にできないのです。
y_waiwai

2019/12/07 11:29

体系的に勉強、というのでいいとは思いますが、 C++は時として不合理(と見えるよう)な言語拡張をしてますんで、ある程度時間がかかるのは仕方がないと思います。 できるなら、他の言語をおすすめしたいところではありますが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問