ストラウストラップのプログラミング入門(29) 18章「ベクタと配列」(続々)

ストラウストラップのプログラミング入門』を読む。今日は、18章「ベクタと配列」の最後までです。

18.5.1「配列の要素へのポインタ」

少し前にC++では配列の添え字に負数を指定できると知り、何じゃそりゃと思っていたのですが、この章を読んで、使い道をやっと理解できました。ポインタを間接的に参照するとき、カーソルよろしく参照先を動かすために、使うんですね。

(自分では書かないと思うけれども、読まなければいけない場面はあるでしょう。。。)

18.5.4「ポインタの問題」

  • nullポインタをチェックしてから使う
  • ローカル変数へのポインタを(関数の呼び出し元に)返してはならない

…などを学びました。気をつけるべきことが多いんですね。

ドリル

配列を利用するドリルと、vectorをほぼ同じ方法で利用するドリル。両方やってみて、労力を比較しようという内容です。

感想は、

  • コピーは、ディープコピーしてくれる点で、vectorがベンリ
  • それ自体からサイズを取得できる点でも、vectorがベンリ
  • 値を指定しての初期化は、{}構文が使える配列がベンリ
    • 最近の言語仕様ではvectorでも{}で初期化できるよ、と訳注にありました
      • それって、まだまだ使えないの? VC2010で怒られたヨ。。。

といったところです。