タグ

STLに関するfa11enprinceのブックマーク (3)

  • protected 継承の使い方 - Cube Lilac

    Container Wrappers - Life like a clown で STL のコンテナを継承しよう(と見せかけよう)と,最後らへんは迷走か?と言うレベルで頑張っていましたが,以下にもう少し単純な方法が紹介されていました. 2.STLのvectorをprotected継承してカスタマイズする 例えばこんな感じ。 #include <vector> template <class T, int N, class Allocator = std::allocator<T> > class Vector : protected std::vector<T, Allocator> { public: using std::vector<T, std::allocator<T> >::iterator; using std::vector<T>::get_allocator; using

    protected 継承の使い方 - Cube Lilac
  • STLのvectorに文句を言わずに自分で頑張る方法 - 神様なんて信じない僕らのために

    1.自分でvectorを書く 死亡フラグ。/(^o^)\ イテレータも使えないカスコンテナができる可能性99.9%。 今すぐ死んだ方が良い。 2.STLのvectorをprotected継承してカスタマイズする 例えばこんな感じ。 C++ code - 40 lines - codepad これは最初からreserveしておくSTLのvector、インターフェイス制御可。 これをすることで、例えばpush_backの際にcapacityが変化したか、といったような事を監視できるし、 (ただし、insertなどのメソッドでもcapacityは変化する) 使わせたくないインターフェイスを公開しない、という事もできるし、 HogeList().swap(hogeList_); といったようなswap技法によるクリアや、 HogeList(hogeList_).swap(hogeList_); こ

    STLのvectorに文句を言わずに自分で頑張る方法 - 神様なんて信じない僕らのために
  • ゲーム開発とSTL - とあるぼっちの生存報告

    コンシューマ向けゲーム開発に携わって結構な年数が経過しました。 これまでは恵まれていたのか、STLを使える環境にいた*1ので特に気にしていなかったのですが、どうやら場所によってはSTLはゲーム開発向きではないらしく使用を禁止される事もあるようです。 おかしいですね。私、STL使ってコンシューマ向けのゲーム作ってきましたけど。 確かにSTLはその特性と使用方法を知らないと痛い目にあいます。特にコンシューマ機のメインメモリ容量はPCに比べて圧倒的に少ないです。その少ないメインメモリ上に実行バイナリやヒープ領域などを展開しなければなりません。メモリ管理に対してシビアになるのは当然で、templateは使用方法によってはバイナリサイズが増大するので使用をある程度制限する事は仕方ありません。 また、std::listや、std::map等は使えば使う程内部でメモリを平然と分断してくれるので、ヒープ領

    ゲーム開発とSTL - とあるぼっちの生存報告
  • 1