タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

programmingとProgrammingとC++に関するS0R5のブックマーク (6)

  • 徐々に高度になるリングバッファの話 - Software Transactional Memo

    リングバッファのイメージ図 1. リングバッファとは何か 機能的にはFirst In First Out (FIFO)とも呼ばれるキューの一種であるが、リング状にバッファを置いてそれの中でReadとWriteのインデックスがグルグルと回る構造をとる事によって容量に上限ができることと引き換えに高速な読み書き速度を得たものである。キューを単に実装するだけなら山ほど方法があって線形リストを使ってもいいしスタックを2つ使っても原理的には可能だ。その中でもリングバッファを用いた方法の利点はひとえに性能の高さでありメモリ確保などを行わないお陰でシステム系の様々な場所で使われている。 これの実装自体は情報系の大学生の演習レベルの難度であるが少し奥が深い。まずリングバッファのスタンダードなインタフェースと実装は以下のようなものである。 class RingBuffer { public: explicit

    徐々に高度になるリングバッファの話 - Software Transactional Memo
  • 江添亮のC++入門

    書はプログラミングの経験はあるがC++は知らない読者を対象にしたC++を学ぶためのである。書はすでに学んだことのみを使って次の知識を説明する手法で書かれた。C++コンパイラーをC++で書く場合、C++コンパイラーのソースコードをコンパイルする最初のC++コンパイラーをどうするかというブートストラップ問題がある。書はいわばC++における知識のブートストラップを目指しただ。これにより読者はを先頭から読んでいけば、まだ学んでいない概念が突如として無説明のまま使われて混乱することなく読み進むことができるだろう。 C++知識のブートストラップを意識した入門書の執筆はなかなかに難しかった。ある機能Xを教えたいが、そのためには機能Yを知っていなければならず、機能Yを理解するためには機能Zの理解が必要といった具合に、C++の機能の依存関係の解決をしなければならなかったからだ。著者自身も苦し

  • ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?

    回答 (11件中の1件目) gotoは悪なので論外として、 * ループ 命令型プログラミング * 再帰 関数型プログラミング の区分についてです。 岡部 健 (Ken Okabe)さんの関数型プログラミングでKISSへの投稿 から抜粋、再掲します。 フローとは、Control flow( 制御構造)のことで、 あらゆるフローは、 構造化プログラム定理(structured program theorem)によって たった3つの要素によって実現可能 です。 > 構造化定理(Structure theorem)、構造化プログラム定理(structured program t...

    ループ、再帰、gotoを使わずに1から100までを印字するC++プログラムは書けますか?
  • C++でアスタリスクをつけすぎると端末が落ちる - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    C++でアスタリスクをつけすぎると端末が落ちる - Qiita
  • C++でできる!OS自作入門

    PHPカンファレンス2012 & WordCampTokyo2012 LT発表資料です。 タイトルの元ネタ: http://www.amazon.co.jp/dp/4094512624

    C++でできる!OS自作入門
  • 極端な一様乱数ジェネレーターを作る

    C++11の乱数ジェネレーターは、自前で実装できる。要件さえ満たしていればいいのだ。 一様乱数ジェネレーター(Uniform random number generator)は、ディストリビューションで使う最低限の要求であり、これさえ満たしていれば、ディストリビューションで使える。より広いエンジンの要求は、初期化方法とかのディストリビューションからの利用には必要ない要件を定義している。 ジェネレーターに必要な要件は以下の通り Gをジェネレーターの型、gをGの値とする。TをGのresult_typeの型とする。 式G::result_typeの結果はT、Tは符号なし整数型(コンパイル時) g()はG::min()とG::max()の間の値を返す(償却定数時間) G::min()はGのoperator()が返す最低値(コンパイル時) G::max()はGのoperator()が返す最大値(コン

  • 1