タグ

C++に関するXrayのブックマーク (31)

  • C++: 構造体を格納したSTLコンテナに対してソート・探索・削除などのアルゴリズムを適用する

    C++に慣れている人にとっては当たり前のことかもしれないけど、あまりC++に親しんでいない場合、構造体を格納したSTLコンテナに対してアルゴリズム<algorithm>を有効に活用していないかもしれない。そこで、構造体を格納したvectorなどのSTLコンテナでソートや探索、削除などのアルゴリズムの利用方法を書いておく。 struct A { int n; int* p; }; 上記のような構造体はよく見かける形だと思う。構造体Aに整数型変数のnとポインタ型変数のpがあり、例えばnに配列の要素数、pにその配列を確保したりする。こういった構造体を以下のようにvectorなどのSTLコンテナを使って格納することは多々ある。 vector<A> A_list; これで構造体Aをコンテナに格納できるわけだ。ところで、STLコンテナを使用する一つの理由として便利なアルゴリズムが利用できることが挙げら

  • omnicppcomplete - The Voyage of the neuromancer

    C/C++ソースの編集時にVisual Studioみたいにコード補完してくれるvimプラグイン。 boostやSTLもばっちり。 以下手順 1.ここからダウンロードしてくる http://www.vim.org/scripts/script.php?script_id=1520 解凍したとき出来上がるディレクトリ群と同じ名前のディレクトリ群が存在するディレクトリを探し(/usr/share/vim/vim70など)、上書きコピーする。 afterというディレクトリは無いかもしれないので、その場合はafter内のftpluginディレクトリを1階層上にコピー(上書き)する 。 .vimrcに filetype plugin on let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"] autocmd CursorMovedI * if

    omnicppcomplete - The Voyage of the neuromancer
    Xray
    Xray 2009/12/03
  • 美しいループ記法求む! - やねうらおブログ(移転しました)

    いま私は速度的に特化したプログラムを書かなくてはいけない。1%でも速いほうが望ましい。必然的に言語はC/C++となる。しかし、いまさらC/C++なんか使いたくない。もう少し洗練された記法が使える言語が好ましい。 なければ作ればいいやと思い、丸一日かけてC++のparserをC#で書いた。 C++風言語の字句解析と構文解析は出来るようになった。(C++ templateは除く。) あとは、いかようにも文法を拡張できる。この言語を仮にいまYaneCと名付ける。YaneCはコンパイルするとC++のコードを生成する。 それでいま悩んでいるのがループ記法だ。C#のようなforeachが欲しい。最初、次のように書けるようにした。 foreach var x in vect sum += x;ふむ、C#っぽくていい感じだ。C/C++のdefineマクロでforeachみたいなのを作ると次のようなものにな

    美しいループ記法求む! - やねうらおブログ(移転しました)
  • 本の虫: lambda 完全解説

    目的 この記事は、C++0xのlambdaを完全に解説せんとする目的を以て書かれた。サンプルコードは最小に留め、エラー処理等は省いた。この記事さえ読めば、今日からlambdaを恐れることなく使う物のC++0xプログラマになれるだろう。 lambdaとは何ぞや lambdaである。あるものは、lambda関数、あるいは無名関数という名称を使っている。いったいlambdaとは何なのか。 lambdaは関数である。また、特に名前はない。したがって、lambda関数、無名関数と呼ぶのは、間違ってはいない。しかしここでは、単にlambdaと呼ぶことにする。 lambdaを定義しよう lambdaは関数オブジェクトである。lambdaは関数オブジェクトである。これはとても大事なので二度書いた。lambdaは関数オブジェクト以外の何物でもない。ところが不思議なことに、皆lambdaが単なる関数オブジェ

  • すぐやらない課:tech.ckme.co.jp

    ◎ サーバの作成、C++プログラムの作成、三次元可視化に関する情報を書いたページ このサイトは、主にLinuxを利用したサーバの作成方法について書いてあります。 一部は、WindowsおよびMac OS Xを使用してのサーバの作成方法も書いてあります。 また、CおよびC++を使ったプログラミングについての小技などもについても書いてあります。 三次元可視化に関しては、OpenDX、ParaviewおよびMatlabを使用しています。 目次 Linuxサーバの設定 SSH(Secure Shell)の設定 - サーバをリモートから管理する際に必須のSSHについてです DNSの設定 - BIND9を使ってDNSを設定します ウェブサーバの設定 - Apache2.xを利用してウエブページを公開します メールサーバの設定(Unixユーザーアカウント編) - postfix & dovecot メー

  • C/C++ から main 関数が消える日 - カタチづくり

    Windows上でデスクトップアプリを開発している身としては、そのうちC/C++でmain関数を書く人って一人もいなくなるんじゃね、と思っている。もちろん簡単なテストコードのためにはmain関数が書けるほうが便利だから全く無くなるわけじゃないんだけど、C/C++でmain関数書いて最終成果物としてリリースされる機会は、もう無くなる日は近い。 C/C++の優位性はパフォーマンスとか低位のAPIを直接叩けるとかしかない。その性能を活かすには要所要所でC/C++ネイティブコードをDLL化して呼び出せば十分で、アプリケーション全体をC/C++で書く必要は全くない。アプリ全体を構築する能力は圧倒的にC#/.NET Framewokのほうが優れている。つまりC/C++でmain関数を書く必要はなく、単にDLLとして関数をエクスポートできれば十分ってことだ。 これは純粋なC/C++の話じゃないけれど、た

    C/C++ から main 関数が消える日 - カタチづくり
  • けん悟庵 | 紹介・ダウンロード

    Lilyって? Lily C++ GUI Library(以下, Lily)は、Windowsアプリケーション専用のGUI構築 & 2D画像処理ライブラリです。 C++でプログラムを作成するとき、大きなネックとなるのがウィンドウやボタンなどの準備です。 作りたいものがあるのに、その準備のGUIをつくるほうが時間がかかる……当に煩わしいです。 そこで出身研究室のプログラミング支援のために作成をはじめたのが、このLilyです。約5年かけてライブラリを構築していきました。 あくまで個人活動で生まれたものではありますが、高頻出のGUIや基的な2D画像処理用クラスを用意しており、 高いデザインの自由度を備えたライブラリにすることができました。もしかしたら?ゲームなんかも作れるかもしれません。 とはいえ、プログラムのお作法しらずな我流ライブラリですが…(^^; Lilyでの開発

  • はてなブログ | 無料ブログを作成しよう

    2024夏休み旅行 神戸・2日目【前編】 zfinchyan.hatenablog.com ↑1日目はこちら 6:50 わたしと夫だけ先に起床 前日に買っておいたお芋のパンで朝ごはん 昨日の疲れからか、なかなか息子たちが起きてこなかったので、ゆっくり寝かせてから10:00にホテルの下にあるプレイゾーンに行って、パターゴルフやバス…

    はてなブログ | 無料ブログを作成しよう
  • C言語〜ゲームプログラミングの館〜

    ※ 更新履歴 ※ 2017/11/03 ・sp.8章追加 2017/10/11 ・配布しているプロジェクトをVisualStudio2017に更新(それにまつわる説明も更新) 2015/09/12 ・s.3章 Androidのようなボタンの作り方(C++) 追加 2013/09/02 ・VisualC++2012のプロジェクトを追加 2013/02/23 ・d3.5章追加 2013/02/20 ・d3.1章追加 ・d3.2章追加 ・d3.3章追加 ・d3.4章追加 2013/01/19 ・sp3章追加 ・sp4章追加 ・sp5章追加 ・sp6章追加 ・sp7章追加 2012/06/23 ・3.14章追加 2012/06/16 ・sp1節追加 ・sp2節追加 2012/02/11 ・d6節追加 2011/11/10 ・h11章追加 2011/10/31 ・s1章追加 ・s2章追加 2011/

  • C++: インテル スレッディング・ビルディング・ブロックを使って簡単に並列化

    最近はマルチコアCPUが当たり前になってきて、それを使って簡単に並列処理プログラミングができないか、頭を悩ませていたのだが、インテルのスレッディング・ビルディング・ブロック(Threading Building Blocks, TBB)が非常に良くできた技術であることを知った。 これまではMPIやら、OpenMPやら、CUDAやらをちょろちょろ手を出しつつも、どれも正直面倒だった。趣味のプログラミングではそれでも楽しいからいいのだけど、単にある処理を並列化で高速にしたいだけの場合、並列処理に関わる面倒な手続きなどは極力省きたい。また、どうしても泥臭いやり方になることが多い。例えば、Cでは簡単に書けるのだけど、C++の機能を使った処理がやりづらかったりね。 そこで、TBBが登場する。マルチコアやメニーコアプラットフォーム上での利用となるが、最近では一般のノートPCでさえマルチコアCPUが使わ

    C++: インテル スレッディング・ビルディング・ブロックを使って簡単に並列化
  • OpenGL de プログラミング

    OpenGL de プログラミング トップページページ一覧メンバー編集 メニュー 最終更新: mikk_ni3_92 2010年06月26日(土) 16:18:39履歴 Tweet <はじめに> 学習のためにつくった、(主に)OpenGLについてのまとめです。 引用、参考は 引用、参考ページ 参考図書など※ ※こんな感じにたくさん並べてます <準備編> 準備編01(glutのインストール) 準備編02(glext.h) 準備編03(glewの導入) 準備編04(OpenGL3.0以降のARB_compatibility拡張) 準備編05(freeglutを使う) <基編> 基編(ウィンドウ作成、線の描画) 基編02(マウス、キーイベント) 基編03(3Dプログラミング,視野の設定など) 基編04(アニメーション) 基編05(光、材質の設定) 基編06(テクスチャ) 基編07

    OpenGL de プログラミング