タグ

2013年9月5日のブックマーク (4件)

  • バイナリファイルの読み込みと書き込み - インコのC++プログラミング

    バイナリファイルの書き込み 数式データをバイナリ形式として出力します。 バイナリを使う理由としては、出力されるファイルのデータが小さいことと、ファイルの一部分のみを読み込むときに、読み込みやすいところです。 #include <iostream> #include <fstream> using namespace std; /* コンパイルできないときは上の3行を #include <iostream.h> #include <fstream.h> に変えてみてください。*/ int main(){ ofstream fout; double a[100]; //文字列ではないデータ fout.open("file.txt", ios::out|ios::binary|ios::trunc); // ファイルを開く // ios::out は書き込み専用(省略可) // ios::bin

    yowano
    yowano 2013/09/05
    fstreamを用いた、バイナリファイルの書き込み、読み込み、部分読み込みのやり方を、実際のサンプルコードを示して解説。
  • C++ 高速化 - speedkumoのプログラミング日記

    研究でC++でソフトウェアの開発を行っていますが データ量が少ない場合は速度はあまり、気にしなくていいのですが、 データ量が増えてくると、計算量などを意識して、高速化をする必要性を感じてきました。 自分は実装でSTLのmapやmultimapを使っているのですが、mapの検索の計算量がO(log n),multimapの計算量がO(nlogn)なのでここで、時間をっているのだと考えられます。 そのため、この部分の計算量を減らす方法を検討しました。 まず、STLのmapの計算量がlog(n)なのは、実装に二分木が用いられるためです。そのため、このmapの実装をhashで行ったら高速化されるのではないかと考えました。 詳しい説明は以下 BoostでC++0xのライブラリ「TR1」を先取りしよう (5) (1/2):CodeZine(コードジン) そこで、調べていくと、boostで計算量がO(

    C++ 高速化 - speedkumoのプログラミング日記
    yowano
    yowano 2013/09/05
    mapでは遅いと感じた時には、boostのunordered_mapがおすすめ。listのオーバーヘッドが大きいと感じた時には、C++0xに含まれるforward_listがおすすめ。
  • 基本 その2『ListとVectorの違い』 - Atsushiのプログラム日記

    その2では『ListとVectorの違い』についてです。 この二つは同じ様に使われていますが、 使用用途を間違えると無駄な処理が発生する事が有ります。 vectorは使ってるけどlistは使ってないって方もいらっしゃるのでは? 自分自身vector有ればよくね?とか考えてました。 しかし、仕組みを知ると愚かさに気づきます。 まずすごく簡単なListの使用例 #include #include #include int main() { std::list list_val; list_val.push_back(10); list_val.push_back(20); for each(int val in list_val) std::cout << val << std::endl; return 0; } 出力: 10 20 当にvectorとlistってかき方似てるなぁ…。 さて

    基本 その2『ListとVectorの違い』 - Atsushiのプログラム日記
    yowano
    yowano 2013/09/05
    ランダムアクセスはvectorが速くて、挿入・削除はlistが速い理由を、具体的に、分かりやすくまとめた記事。
  • vector, list, set, dequeのパフォーマンスを実験したよ - nursの日記

    やあ子供たち。今日はSTLのstd::⇒ vector, list, set, dequeのパフォーマンス測定の実験をしたよ。以下のようなコードだ。試してみてくれ。 #include <iostream> #include <vector> #include <list> #include <algorithm> #include <ctime> #include <set> #include <deque> using namespace std; #define N 1000000 #define P 400000 class less_than_4000 { public: bool operator()( int i ){ return i<P; } }; int main( int argc, char* argv[] ) { vector< int > vec; list< i

    vector, list, set, dequeのパフォーマンスを実験したよ - nursの日記
    yowano
    yowano 2013/09/05
    全体的にvectorが速いため、どのSTLコンテナを使っても実装できるという場合は、vectorが良いだろう、という結論。