タグ

ブックマーク / 0xcc.net (2)

  • 配列へのポインタと配列へのリファレンス - bkブログ

    配列へのポインタと配列へのリファレンス C/C++ のあまり使われない機能に、配列へのポインタと配列へのリファレンスがあります。ここでは、それらがどのようなものかまとめたいと思います。 C 言語には配列の先頭要素へのポインタとは別に配列へのポインタ が存在します。。プログラミング言語Cの 5.7 に多次元配列を受け取る関数の例が載っています。 次のプログラムではサイズ 256 の char 型の配列を作り、その配列へのポインタ p を作っています。++p を実行すると p の指すアドレスは 256 バイト分進みます。 #include <stdio.h> int main() { char foo[256]; char (*p)[sizeof(foo)] = &foo; printf("%p\n", p); ++p; printf("%p\n", p); // 256 バイト分進む ret

    MWAVE
    MWAVE 2005/12/19
  • C の qsort と STL の sort の速度比較 - bkブログ

    STL は知れば知るほどよくできていると感心します。Effective STL の46項には今回と同様の実験が取り上げられています。 Effective STL には他にも、イテレータの無効化やコンテナ操作の性能など、 STL を使う上で注意すべき点が詳しく解説されています。 実験に使ったプログラムは以下の通りです。 $((2**24)) はコマンドラインで 2の24乗を計算する表記です。bash や zsh で使えます。 実行結果 % g++ -O2 -o sort sort.cpp % ./sort $((2**24)) qsort: 9.22 stl-sort-func: 5.62 stl-sort-functor: 2.56 % icc -O2 -o icc-sort sort.cpp % ./icc-sort $((2**24)) qsort: 8.82 stl-sort-fun

    MWAVE
    MWAVE 2005/10/01
    参考にしよう
  • 1