C++のsplit関数はデフォルトではないので、 作るか、boostのものを使うかってことになる。 SnapDragonさんのsplit関数。たしかこんなんだったと思う。 C++クックブックのものよりもずっとイカス。 typedef vector<string> VS; VS split( string s, string c ) { VS ret; for( int i=0, n; i <= s.length(); i=n+1 ){ n = s.find_first_of( c, i ); if( n == string::npos ) n = s.length(); string tmp = s.substr( i, n-i ); ret.push_back(tmp); } return ret; } #include <boost/algorithm/string.hpp> stri
言うほど大げさなものでは無いのですが、最近 C++ を触ってて思ったことをまとめていみました。数あるオブジェクト指向言語の中でもC++独特の仕様というのは結構あって、その中でも特に面倒だと思ったものを挙げます。単なる構文的な話題については触れません。 このエントリは、C言語(特にポインタ周り)とオブジェクト指向プログラミングの知識を仮定します。(というかそういう人にしか役に立たないと思う) オブジェクトの生成 - 値とポインタ C++ は newしなくてもオブジェクトが作れます。 string s;等と宣言すると、その場でスタックに領域が確保され、コンストラクタが走ります。そしてスコープが切れると自動的に削除されます。 グローバルにオブジェクトを宣言したりすると、mainが走る前にコンストラクタが呼び出され、main終了後にデストラクタが呼ばれることになります。その中で例外を投げたりしても
Two C++ codes, the original and an updated versions, are freely available for download. More information can be found in the readme file included in both distributions and here. A preliminary matlab version can be obtained on demand. Details about our method can be found here. This project has been developed by Vincent Blondel, Jean-Loup Guillaume, Renaud Lambiotte, and Etienne Lefebvre Using the
関数のプロトタイプ C++では、一部C言語とは違う、または拡張された部分がいくつかあります コンパイラの実装レベルや、低レベルな部分での違いは省略します C++プログラムを読み書きするのに、Cプログラマが最低限知るべきことを紹介します まずは、関数のプロトタイプについてです C言語でのプロトタイプ宣言で、引数に何も値を受け取らない場合はvoidを明示する必要があります しかし、C++では任意です。voidを省略すると値を受け取らない関数を意味します #include <stdio.h> /*C言語ではvoidを明示しなければならない*/ void func(void); void func() { puts("kitty on your lap"); } int main() { func(); return 0; } 上はC言語プログラムです C言語では、引数に何も受け取らない関数の場合
CからC++の外部変数や外部関数を呼ぶことが可能でしょうか? ソースレベルで以下の逆みたいなことが出来ないでしょうか?リンク時に解決するならば、ベターな方法が知りたいです。 extern ”C”{ extern void hoge(void); }
id:nyaxt氏との共同開発の分散ストレージ「Cagra」(かぐら)のアルファ版をリリースしました。 cagra α3リリース cagra テクニカルデモ α2リリース 分散ストレージエンジンテクニカルデモ α版リリース cagraのα版試してみたよ - takumalog Cagraは以下のような特徴を持った(目指した)P2P分散ストレージです。 Zeroconf マルチマスタでレプリケーションするWrite 高速な分散Read オプションで高速な非同期Write インターネットレベルよりもLANレベルのマシン台数に特化 巨大データサポート 高速イベント駆動システムコール+軽量スレッド 超アジャ〜イルな開発体制 まだα版で全部が実装されているわけではないですが、とりあえず動きます。 Zeroconf UDPマルチキャストでノードを自動的に発見するので、一切設定ファイルを書かずに動作せる
cagra: Reliable and Flexible Distributed Storage System 分散ストレージエンジンテクニカルデモ α版リリース あの上野 (nyaxt) 氏と、あの古橋 (frsyuki/viver) 氏 共作の cagra*1。cagra は分散ストレージシステムで、memcached の分散版というとちょっと語弊があるけど、memcached位のお手軽さで使えるストレージ(現在はオンメモリのみ)です。ストレージという意味では、MogileFS に近いのでは?というご指摘もいただきました。現在 24 ノード (24台) 位でもちゃんと動いているようです。(もちろん、1ノードでも動くよ) しかもデフォルトで Ruby バインドが付属です!memcached を簡易 DB 代わりみたいに Ruby から使っている僕としては、これは試すしかない!ということで
やっと開発が一段落したのでお知らせ。frsyuki氏(id:viver)との共同開発作品。 1000speakers:2の3次会で二人でひたすら組んでいたアレです。 Trac: http://nyaxtstep.com/trac/nxfs 概要 cagraは手軽に構築できる分散ストレージシステムです。 memcachedの様な手軽さで、信頼性のある分散ストレージを構築できます。 機能/特徴 zeroconf 設定項目はコマンドラインパラメータに集約 UDP Multicastによる自動ノード検出 Large Data Support memcachedに比べ、大きなデータもきちんと取り扱う事ができます。 データごとのチェックサムを保持します。 数百G〜Terabyteスケールのデータもサポートする予定 可変信頼性 データに求める信頼性(レプリケーション数)をデータごとに設定することができま
概要 分散ストレージエンジンcagraのテクニカルデモ版です。 cagra概要についてはこちら:d:id:nyaxt:20080422 冗長性を持つ分散ハッシュテーブルを扱うことができます。ノードの動的追加/削除にも対応しています。(ただしノード削除後のputは一部未実装により不安定) 現時点の機能的にはmemcached + αな感じです。 ダウンロード http://static.nyaxtstep.com/cagra/nxfs-alpha-release.tar.gz hotfixだしました:d:id:nyaxt:20080427 随時アップデートしてるので最新版は: http://d.hatena.ne.jp/nyaxt/searchdiary?word=%2a%5bcagra%5d%5brelease%5d 動作環境 Mac OS X (Leopard) Linux 2.6 De
Xbyak - x86, x64 JIT assembler - .frame(English) .frame(x86の究極の最適化手法?) Xbyak(カイビャック)はx86(IA32), x64(AMD64, x86-64)のマシン語命令を生成するC++のクラスライブラリです. プログラム実行時に動的にアセンブルすることが可能なため, 柔軟な最適化(動的コード生成)が可能となります(利用シーン:量子化の高速化, 式の計算). 暗号ライブラリに使って高速な実装をしてみた(very fast etaT pairing for Core 2 Duo) ヘッダファイルオンリー xbyak.hをインクルードするだけですぐ利用することができます(32bit, 64bit両対応). Windows Xp(32bit, 64bit), Vista/Linux(32bit, 64bit)/Intel
なにそれ? 前提環境 準備 使ってみる。 もうちょっとちゃんと使ってみる。 速度差 速度差2 まとめ Wed, 18 Sep 2002 01:42:22 +0900、初稿。 Wed, 18 Sep 2002 02:55:41 +0900、改稿。ハヤッ。(Kent.Nさんのポカのご指摘に拠る。多謝) Wed, 16 Jul 2003 20:42:18 +0900、改稿。てつやさんによる。 注意:後半部、速度の比較をやっていますが、どうやら相当いいかげんです。本気でこの比較を知りたければご自分でテストを作成し、ご確認ください。特に、最適化のあたりとか。一番いいのは、現在既にあるアプリを変更してやってみることかなぁ。 なにそれ? Boehm GCを使おうを参照。 前提環境 Windows 2000 MS VS 6.0 sp5 Memory 256MB CPU PentiumIII 500Mhz
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く