タグ

c++に関するash1takaのブックマーク (15)

  • C++でクロスプラットフォームなネットワーク用ライブラリ - なんとな~くしあわせ?の日記

    そんなお題でStackOverflowの質問スレッドが立ってる。bump! bump!... Stackoverflow - C++ sockets library for cross-platform けち臭いStackoverflowはライブラリの比較を禁止にした。おかげでそのエントリは削除されてしまったので、archiveへのリンクを載せておく。 以下は ACE, Boost, Pocoの比較 c++ - ACE vs Boost vs POCO - Stack Overflow 出てきたライブラリとか、それ以外を並べてみる ライブラリ URL 一言コメント boost::asio Boost.Asio - 1.64.0 ・バイナリ配布しない&C++ならBoost使って当たり前じゃん?って方はこれで。 ・C++のほとんどの仕事はSTLとBoostで事足りる ・これだけのためにboos

    C++でクロスプラットフォームなネットワーク用ライブラリ - なんとな~くしあわせ?の日記
    ash1taka
    ash1taka 2015/08/04
  • メモリの二重解放回避テク - akihiko’s tech note

    メモリの二重解放とは, new などで確保したメモリ領域(ヒープ領域)を2回 delete などで解放することを言う. new と delete をきちんと対応させて書いていないときに起こる問題だ.特にクラスのメンバに動的確保したメモリへのポインタを含む場合にやってしまいがちである.ここでは二重解放によって発生する問題を解説する. 結論から言うと,メモリを解放した後 (delete p1;),ほかの用途でメモリを確保し (p2=new T;),たまたまそれが解放したメモリと同じアドレスに割り当てられてしまった場合 (p1==p2),最初のメモリを二重解放すると (delete p1;),新しく確保したメモリ (p2) が解放されてしまう.この結果,新しく確保したメモリにアクセスすると値が書き換えられていたり,セグメンテーションフォルトが発生する場合がある.プログラマはまず,新しく確保したメ

    メモリの二重解放回避テク - akihiko’s tech note
    ash1taka
    ash1taka 2015/01/05
  • [c++,boost] boost::graphのお勉強 - Qiita

    Boost Graph Library BGL(Boost Graph Library)自体が何であるか、目的は何であるかはこのページにある。 重要な事はBGL自体で完結したグラフライブラリを提供する事ではなく、BGLを使って、汎用的で持続可能なグラフ理論のアルゴリズム作成を支援する事である。 これに関連して、興味深い例が先に掲げたページにあるので、興味のある人は参照して欲しい。 コンセプト:Graph 一般的に、グラフの効率的な実装は状況により異なる。 そのため、様々なグラフの実装が用いられるが、GraphコンセプトはBoost Graphで用いられるグラフの実装に共通の要件を提供する。 Graphコンセプトを満たす型は次の条件を満たさなければならない。 . vertex_descriptor typedef名を持つ . edge_descriptor typedef名を持つ . dir

    [c++,boost] boost::graphのお勉強 - Qiita
  • Googleがオープンソースの2D物理エンジンLiquidFun 1.1をリリース

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Googleがオープンソースの2D物理エンジンLiquidFun 1.1をリリース
  • Stories of Your Life and Others » Blog Archive » C++で文字列のsplit

    つい最近、C++の文字列splitが必要な場面がありました。 いい加減C++のsplitを毎回書くのが面倒になってきましたので、忘れないようにメモっておきたいと思います。 C++でsplitを書く方法はいくらでも方法があると思いますが、代表的な実装例をあげてみます。 boostが使える環境であれば一番最初の選択肢としてboostのstring algorithmを利用した方が車輪の再発明をしなくて済むかと思います。 ただ、競技プログラミングなどでは残念ながら利用できません。 find_first_ofを利用する方法 vector<string> split(const string &str, char delim){  vector<string> res;  size_t current = 0, found;  while((found = str.find_first_of

    ash1taka
    ash1taka 2013/11/09
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    ash1taka
    ash1taka 2013/06/12
  • C++でマルチスレッドプログラミングを試してみたことのまとめ - Y's note

    C++プログラミング入門 作者: グレゴリーサティア,ダウグブラウン,Gregory Satir,Doug Brown,望月康司,谷口功出版社/メーカー: オライリー・ジャパン発売日: 2001/11メディア: 単行購入: 9人 クリック: 147回この商品を含むブログ (29件) を見る Index Word 排他制御 アトミック性 クリティカルセクション fork マルチプロセス/マルチスレッド mutex semaphore Pthreads スレッドセーフ スピンロック ACID pthread API fork semaphore mutex Attention links Word 初歩的な単語ですが、マルチスレッドプログラミングに関するものを簡単にまとめます。 排他制御 複数のタスクが処理を並行して同一の資源にアクセス可能な場合、データの整合性が合わない事を避けるために他の

    C++でマルチスレッドプログラミングを試してみたことのまとめ - Y's note
  • GoogleがB-tree実装のSTLコンテナを公開

    C++ containers that save memory and time cpp-btree - C++ B-tree - Google Project Hosting Googleが、B-tree実装のSTLコンテナー(map, set, multimap, multiset)を発表した。 多くのSTLの実装では、map, set, multimap, multisetは、Red-Black treeで実装されている。Googleの発表によれば、B-tree実装のコンテナーは、赤黒木実装に比べて、速度が上がり、しかもメモリ消費量も削減できるとしている。 紹介まで。 B木は一つのノードに複数の要素を格納する。これにより、ポインターなどのオーバーヘッドを低減でき、メモリ消費量の削減につながる。また、複数の要素を一括してノードに詰め込むため、速度向上もあるのかもしれないが、そのへんはよ

    ash1taka
    ash1taka 2013/02/04
  • いやなブログ: 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++

    配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)

  • 簡潔データ構造超入門 〜つくって学ぶ簡潔ビットベクトル〜 - EchizenBlog-Zwei

    簡潔データ構造は各種操作を高速に保ったままでデータサイズを情報理論的な下限近くまで圧縮できる。大規模データを扱うことの多くなってきた現在、特に注目を集めている技術である(※個人的な見解です)。 しかし有用性とは裏腹にまとまった教科書等がないこともあり入門者に対して敷居が高いようにも感じられる。そこで記事では簡潔データ構造の基であるビットベクトルに対する簡潔構造の実装方法をC/C++のコードを交えて解説してみる。 ビットベクトルに対する簡潔構造は、単純には疎ベクトルを表現するのに利用することができる。よって記事でも簡潔ビットベクトルを実装し、疎ベクトルを実現してみようと思う。 今回は疎ベクトルとして値がint(4byte)の256次元のベクトルを考える。ただし疎ベクトルなので256次元のうちいくつかの次元にしか値が入っていないものを仮定する。例えば v[5] = 10 v[100] =

    簡潔データ構造超入門 〜つくって学ぶ簡潔ビットベクトル〜 - EchizenBlog-Zwei
    ash1taka
    ash1taka 2012/10/19
  • Boost.PPでクイックソート(改良版) - iorate's blog

    まず素直に再帰で実装したものがこちら。 http://ideone.com/3Sz2P 美しくありませんね。 マクロは再帰できないため、ループや再帰を実現するにはどこかでこのような連番マクロを使う必要があります。しかし、そういった汚れ仕事はBoost.PPのWHILEやSEQ_FOLD_LEFTに任せてしまいましょう。今回はWHILEを使ってループで実装してみます。 #include <boost/preprocessor/cat.hpp> #include <boost/preprocessor/control/iif.hpp> #include <boost/preprocessor/control/while.hpp> #include <boost/preprocessor/logical/bitand.hpp> #include <boost/preprocessor/logic

    ash1taka
    ash1taka 2012/09/24
  • ひきぷろぐ - FC2 BLOG パスワード認証

    ブログ パスワード認証 閲覧するには管理人が設定した パスワードの入力が必要です。 管理人からのメッセージ 閲覧パスワード Copyright © since 1999 FC2 inc. All Rights Reserved.

  • Channel 9

    AI is suddenly everywhere. Do you need to go and get a shiny machine learning degree to remain competitive? John Maeda says not to worry. He’ll show you how to cook delicious dishes into your coding repertoire with his new show - Mr. Maeda’s Cozy AI Kitchen. Open at Microsoft is a weekly show for open-source enthusiasts. It features a diverse group of guests including maintainers, software and Dev

    Channel 9
    ash1taka
    ash1taka 2012/02/07
  • POINTER「配列とポインタの完全制覇」「C言語 ポインタ完全制覇」

    タイトルは「C言語 ポインタ完全制覇」。 このページの書籍化とはいえ、内容の大半は書き下ろしですので、 既にWebで読んでおられる方にも決して損はさせません。 詳細はこちらへどうぞ。 「C言語 ポインタ完全制覇(第2版)」書籍情報 「C言語 ポインタ完全制覇」書籍情報(旧版) 技術評論社さんによる書籍案内はこちら。 第2版 旧版 修正履歴は、このページの末尾にあります このページについて 全くもって僭越ながら、恐れおおくも偉そうにも、 こんな文書をWWWで公開させていただくことにしました。 この文書は、もともと社内向けの教科書として作成したものです。 私は、一介の文系出身プログラマであり、 特に情報関係の教育を受けたわけでもなく、 プログラミング言語に深い造詣を持っているわけではありません。 この文書にも多くの誤りや、誤解を招く表現があるかと思います。 そのような記述を見付けられた方は、ぜ

  • googletest - Google C++ Testing Framework - Google Project Hosting

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    googletest - Google C++ Testing Framework - Google Project Hosting
  • 1