Code Archive Skip to content Google About Google Privacy Terms
C++のstringにはpush_back()はあるのにpop_back()がないので、大抵「s.resize(s.size()-1)」で代用していたのですが、これって効率いいのか疑問に思ってちょっと実験してみました。 式 msvc-8.0 gcc-mingw-3.4.2 cw-8.3 borland-5.8.2 s.resize(s.size()-1) 0.68 0.81 0.42 0.94 s.erase(s.size()-1) 0.65 0.64 0.53 0.95 s.erase(next(s.rbegin()).base()) 1.15 0.80 0.48 2.41 s.erase(prior(s.end())) 1.12 0.64 0.52 1.99 1000000個の文字列を10回ずつテストで、単位は秒です。 コンパイラとライブラリによって多少違いがありますが、平均的には「s
A comprehensive tutorial on member function pointers, and an implementation of delegates that generates only two ASM opcodes! Download source files - 18.5 KB Download macro files used to develop this library - 18.6 KB Russian Translation I'm pleased to announce that Denis Bulichenko has translated this article into Russian! It has been published in RSDN. The complete article will soon be available
C++ のシンボルをデマングルする C++ コンパイラはシンボルが一意の名前を持つように名前マングル (name mangling) と呼ばれる処理を行います。本記事では GNU の開発環境で C++ のシンボルをデマングル (demangle) する方法を紹介します。 マングルの方法はコンパイラ依存です。同じコンパイラでもバージョンによってマングルの方法が異なることがあります。たとえば GCC 3.x では int foo(int) を _Z3fooi に、 int foo(const char*) を _Z3fooPKc のようにマングルしますが、 GCC 2.95 ではそれぞれ foo__FPCc, foo__Fi となります。 コマンドラインからデマングル C++ のオブジェクトファイルに nm をかけると、デフォルトではマングルされた読みづらい形式でシンボルが出力されます。 %
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く