trsing’s diary

勉強、読んだ本、仕事で調べたこととかのメモ。

2019-05-01から1ヶ月間の記事一覧

AtCoder Beginner Contest 127参加メモ

Q.古戦場とABCと艦これイベントが被るとどうなる? A.団長・・・団員のみんな・・・すまねえ・・・ ノルマ無し走る走らないも自由の団なので特に問題ないですが。そろそろ4問解けないかなーと私は思うのでした。 結果 A,B,CはAC。Dは提出したけどAC、WA、TLE入り混じ…

EFFECTIVE C# 6.0/7.0 読書メモ 項目27

C#

項目27 最小限に制限されたインターフェイスを拡張メソッドにより既往拡張する インターフェイスには最小限の機能を定義しておき、拡張メソッドを用意するようにする。 インターフェイスとして定義されたメンバを最小限に抑え、 補助的な機能を拡張メソッド…

EFFECTIVE C# 6.0/7.0 読書メモ 項目26

C#

項目26 ジェネリックインターフェイスとともに古いインターフェイスを実装すること ジェネリックインターフェイスをサポートするクラスを作成するなら、非ジェネリックインターフェイスもサポートする。 ジェネリック以前のコードも多数存在しており、それら…

AtCoder Beginner Contest 126参加メモ

問題増えた!目標は3+ atcoder.jp 結果 A,B,CはAC。Dは方針決まったけど実装まで至らず。E,Fは問題ちょいみ。 後日、D,Eは自力でAC、Fは解説見てAC。 C:Dice and Coin intで割り算して「あれ???」となっていました。初心者かよ。 D:Even Relation 例え…

diverta 2019 Programming Contest E: XOR Partitioningメモ

atcoder.jp うっかりE問題を見てしまい1週間うんうん唸り続ける羽目になったけどようやくなんとなくわかったのでメモ。公式解説のほかいろいろ見た。問題名でググって出てくるとこは大体目を通しましたよと。もはやどれを参考にできたかも覚えておらぬ。 解…

EFFECTIVE C# 6.0/7.0 読書メモ 項目25

C#

25 型引数がインスタンスのフィールドではない場合にはジェネリックメソッドとして定義すること 次の条件に該当しないのなら、ジェネリッククラスではなく非ジェネリッククラス内のジェネリックメソッドを定義するとよい。 型パラメータの値をクラスの内部状…

EFFECTIVE C# 6.0/7.0 読書メモ 項目24

C#

24 親クラスやインターフェイス用に特化したジェネリックメソッドを作成しないこと オーバーロード解決について。 ジェネリックメソッドは、型パラメータをそれぞれに該当するあらゆる型と一致できる。暗黙的型変換(例えば親クラスへの変換)よりも優先される…

EFFECTIVE C# 6.0/7.0 読書メモ 項目23

C#

項目23 型パラメータにおけるメソッドの制約をデリゲートとして定義する たいていの場合、制約としてクラス制約やインターフェイス制約を指定する方法が適している。.NET BCLでもIComparable<T>などが実装されていることを期待する機能が多数ある。 しかし、独</t>…

diverta 2019 Programming Contest参加メモ

企業主催?よくわからんが参加だ。数をこなせウィッヒー! 配点的にABとCかDクリアを目標で。 atcoder.jp 結果 A,B,C問題はAC。D問題は提出にもいたらず。E以降は問題文すら見れてねえ。 C:AB Substrings 連結してABができるか。変に被ったりしないので文中にある…

EFFECTIVE C# 6.0/7.0 読書メモ 項目22

C#

項目22 ジェネリックの共変性と反変性をサポートする 独自にインターフェイスやデリゲートを作成する場合、できる限り反変性inあるいは共変性outを設定する。 共変性と反変性をサポートするメリット 作成したインターフェイスやデリゲートの変性*1が誤用され…

EFFECTIVE C# 6.0/7.0 読書メモ 項目21

C#

項目21 破棄可能な型引数をサポートするようにジェネリック型を作成すること 型引数がIDisposableを実装している場合にも対応するようにジェネリック型を設計すること。 例1:メソッド内で型引数のインスタンスを作成して使用するようなジェネリックメソッド…

AtCoder Beginner Contest 125、AtCoder Grand Contest 033参加メモ

AtCoder Beginner Contest 125 初心者用ということでとりあえず参加 atcoder.jp 結果 A,B,D問題はAC(Accepted:正解)。CはTLE(Time Limit Exceeded:プログラムが規定時間内に回答できなかった)。 C:GCD on Blackboard 高速化の方法思いつかなかったのでAC…

AtCoder始めました

経緯 転職したいけど面接とかクソ苦手だ…。技術力評価的なあれやそれで下駄はかせてくれる都合良いののないかな…。下駄どころか地面にめり込む可能性あるけど…。 スキルチェック的なものあんのか。Paizaってのええやん。 あかん…。スキルチェック問題間違え…

EFFECTIVE C# 6.0/7.0 読書メモ 項目20

C#

項目20 IComparableとIComparerにより順序関係を実装する IComparable<T>とIComparer<T>は順序関係を定義するインターフェイス。コレクションのソート、検索するために順序関係を定義する必要がある。 例えば'List.Sort()'では'T.CompareTo(T)'を使用する。 ICompa</t></t>…

EFFECTIVE C# 6.0/7.0 読書メモ 項目19

C#

項目19 実行時の型チェックを使用してジェネリックアルゴリズムを特化する 実行時の引数の型に応じ、その型が持つ機能に適したアルゴリズムを使用するようにする。 型引数が適切な機能を備えている場合、より効率的なアルゴリズムを効率的に実装できる。 ジ…

EFFECTIVE C# 6.0/7.0 読書メモ 項目18

C#

項目18 最低限必須となる制約を常に定義すること ジェネリック型を作成する場合、最低限必須となる制約を常に定義する。 制約 メリット 使用者やコンパイラに対して想定する機能を伝達することができる。 制約があればコンパイラはその制約が満たされている*…

EFFECTIVE C# 6.0/7.0 読書メモ 項目17

C#

項目17 標準的なDisposeパターンを実装する アンマネージリソースを持つ型のメモリ管理について。標準的な方法(Disposeパターン)を実装すること。 Disposeパターンの利点 型のユーザはIDisposableインターフェイスによりアンマネージリソースを適切なタイミ…