タグ

C++に関するcrkのブックマーク (23)

  • gdb + core 解析 - utahta blog

    core ファイルを解析するメモ。 下準備 まず意図的に SEGV させるコードを書く。 $ vi a.cpp #include class CPrint { private: int m_number; char *m_str; public: CPrint() : m_number(10), m_str(NULL) {} ~CPrint() {} void print(){ // ここで SEGV る予定 printf( "%d, %c\n", m_number, m_str[0] ); } }; int main() { CPrint p; p.print(); return 0; } 続けて core を出力させる設定。環境は Linux CentOS 5。 $ ulimit -c unlimited core dumped 下準備で作成したソースコードをコンパイル。-g を忘れず

    gdb + core 解析 - utahta blog
    crk
    crk 2010/10/14
  • https://www.cse.kyoto-su.ac.jp/~oomoto/lecture/program/C/ddd/index-j.html

  • Eclipse CDTでGtk+2.0のビルド (r271-635)

    普段利用しているEclipseでGtk+2.0を用いるプロジェクトのビルド方法 (環境はFedora 8) GCCのインストール (インストールされていない場合) gccのCコンパイラーとC++コンパイラーがインストールされていない場合は、インストールする 解凍したディレクトリを、(たとえば) /usr/lib に移動する。(インストール操作は必要ない) CDT(C/C++ development tools)のインストール Eclipseを起動して、Helpメニュー → Software Updates → Find and Install のダイアログを開き、Search for new features to install を選択すると、検索するサイト一覧が出る。 「Europa Discovery Site」にチェックを入れてインストールパッケージを検索する。 インストールパッケ

  • さらに分かっておきたいトランジスタの種類 − @IT MONOist

    組み込みソフトウェア/ハードウェア開発における技術力の向上、改善・最適化などを幅広く支援する“組み込み開発エキスパート”のための情報フォーラム

  • C++で整数型を文字列型に変換

    2007年01月(1) 2006年11月(3) 2006年10月(5) 2006年09月(8) 2006年08月(6) 2006年07月(13) 2006年06月(10) 2006年05月(12) 2006年04月(11) 2006年03月(14) 2006年02月(5) 2006年01月(7) 2005年12月(6) 2005年11月(10) 2005年10月(14) 2005年09月(6) 2005年08月(7) 2005年04月(2) 2005年03月(5) 2005年02月(26) pythonで2つの日付の間の日数を数える方法 by (02/13) 英語で手紙 Best regards? Sincerely? by ケイトスペード kate spade (08/11) 情報可視化とビジュアルデータマイニング by 競泳用水着 (07/27) 情報可視化とビジュアルデータマイニング

    C++で整数型を文字列型に変換
    crk
    crk 2009/07/27
  • C++演算子 - Visual Studio Wiki

    除算では、整数同士の割り算の計算結果は整数となり、0に丸められます(正の場合は切り捨て、負の場合は切り上げ)。小数の計算結果を求める場合は、浮動小数点同士で計算をします。

    C++演算子 - Visual Studio Wiki
  • C++入門

    目指せプログラマー!にようこそ。 当サイトはこちらに引っ越しました。 お手数をおかけしますが、上記サイトへご移動くださいませ。

  • 標準C++ベクタ

    配列型文字列と比べるとC++ストリング型オブジェクトは使いやすく実行エラーの起こる回数が少ない.これと同じことが配列と標準C++ベクタ型オブジェクトの間でもいえる.つまり,C++ベクタオブジェクトは配列をもっと使いやすくしたものである.vectorクラステンプレートは標準C++ライブラリのコンテナのプロトタイプである. vectorクラステンプレートはvectorヘッダで定義されている. 例題 14.1   次のプログラムは,8個の文字列を持つベクタとそれらを呼び出すload()関数,そして表示するprint()関数を構築している.実行するとどんな結果が得られるか. #include <iostream> #include <string> #include <vector> using namespace std; void load(vector<string>&);

    crk
    crk 2009/02/25
  • C++の新しいキャスト

    C++の新しいキャスト 従来のキャストの問題点 異なる型への変換において、C/C++ではキャストが用いられます。 // intからlongへのキャスト int ival; int lval = (long)ival; ご存知のとおり、キャストは非常に危険です。 来ならば型の不一致によるコンパイルエラーをねじ伏せるのですから。 キャストの使われ方(意味)は、大きく3種(型変換/型変更/const外し)に分類されます。 型変換 // int から double へ int ival; double dval = (double)ival; 型変更 // long から int* へ long lval; int* iptr = (int*)lval; const外し // const int* から int* へ const int* ciptr; int* iptr = (int*)cip

  • strstream と stringstream

    strstream は文字列のストリーム,です. std::strstream を使ってデータを書き込む場合,「どんどん後ろへと追加していく」ことになります. operator でどんどん追加して,最後に str() で char* を取得できます. #include <strstream> #include <iostream> using namespace std; void hoge() { strstream ss; ss << "hoge" << "fuga" << "hoge" << ends; cout << ss.str() << endl; } 「なんで const char* じゃなくて char* なのか」,とか 「最後に std::ends を入れないと文字列が終端されない」, とか,内部の実装が見え隠れしてる感じのクラスでした. 当たり前に使ってたの

  • 標準C++文字列

    前節で学んだ文字配列はC++の中の重要な部分である.文字配列はデータの編集に効率のよい道具を提供してくれる.ただ,この効率の良さは,ナル文字を用いていることによる動作誤差というリスクを背負っている. そこで,C++には標準C++ストリング(standard C++ strings)とよばれ,文字配列に代わる動作誤差の少ないものがある.文字列の長さを文字列の中に含ませることにより,ナル文字に頼る必要を無くしたものである. 書式付入力(Formatted Inputs) C++での入力はistreamオブジェクトcinを通り,出力はostreamオブジェクトcoutを通る.istreamクラスはcinのようなオブジェクトの行動を定義する.最も顕著な行動は抽出演算子(extraction operator)(または入力演算子) の使い方であろう.抽出演算子はistreamオブジェクトから文

  • const_iterator - りんでん記

    そんなものがあったのか。 void test(const std::vector<int>& a) { std::vector<int>::iterator p; for (p = a.begin(); p != a.end(); p++) { // 中略 } } …ということはできなくて。。 void test(const std::vector<int>& a) { std::vector<int>::const_iterator p; for (p = a.begin(); p != a.end(); p++) { // 以下略 } } これでOK。 知らなかったよ、ちくしょー!! 今まではコンパイルエラーが出てから小一時間悩んでからiteratorを使うのを諦め、姑息な手段に頼ってコードを汚しまくってました。。*1 万年初心者 *1:どういう手段かって?…んなこと恥ずかしくて書けま

    const_iterator - りんでん記
    crk
    crk 2008/12/16
  • STL <map>

    2003/6/7 細かな修正 mapとは? キーと要素のペア(pair)を格納するコンテナ。 検索/比較はキーによって行います。 mapとmultimap multimapはキーが重複していても構わないため、operator[]()がありません。 multimapを使用する場合はmapをmultimapと読み替えてご覧下さい。 目次 テンプレート 型名 コンストラクタ等 map() operator =() イテレータ begin(), end() rbegin(), rend() サイズ size(), max_size(), empty() 挿入 map::insert() multimap::insert() insert() 削除 erase() 検索 find() count() equal_range() lower_bound(), upper_bound() map::o

    crk
    crk 2008/12/16
  • C++マニアック,,pair の使い方,usage of pair

    pair は STL のヘッダ <utility> で定義されている、二つの要素のペアを入れる入れ物です。 二つの要素 first と second の呪縛から逃れる 二つの要素 ページの先頭へ pair は二つの要素を入れる入れ物です。それぞれの要素は C++ のオブジェクトで、その型はテンプレート引数で決まります。簡単な例を見て見ましょう。この場合、int と float がテンプレート引数です。 #include <utility> using namespace std; int main() { pair<int, float> pairif; pairif.first = 1; pairif.second = 2.3f; } pair は基的には、次のように定義された struct PAIR に良く似ています。 struct PAIR { int first; float s

    crk
    crk 2008/12/16
  • STL vector

    vector00.cpp 【source】 // サイズを指定してインスタンスの生成 // vector<int> iVec( N ) ; vector01.cpp 【source】 // vectorの最後にアイテム追加(push_back) // 動的配列の体験 vector02.cpp 【source】 // vectorの最後にアイテム追加(push_back)して削除(pop_back)してみる // 動的配列の加減を体験 vector03.cpp 【source】 // 要素の参照に iterator を使用。 // STL では コンテナの内容を扱う際に iterator を使用します。 vector04.cpp 【source】 // vector の clear( ) // vectorのsize が 0 になります。 vector05.cpp 【source】 // i

    crk
    crk 2008/12/16
  • 目指せプログラマー!

    目指せプログラマー!にようこそ。 当サイトはこちらに引っ越しました。 お手数をおかけしますが、上記サイトへご移動くださいませ。

    crk
    crk 2008/12/16
  • C言語におけるポインターとconstの関係について

    JIS X3010の6.3.2.3 ポインタには、次のように記述されています。 「任意の型修飾子qに対して非q修飾型へのポインタは, その型のq修飾版へのポインタに型変換してもよい。」 また、次のようにも記述されています。 「オブジェクト型又は不完全型へのポインタは, 他のオブジェクト型又は不完全型へのポインタに型変換できる。」 何か微妙な記述ですが、型T*から型q T*へは変換できるが、型q T*から型T*への変換は明言を避けています。ただし、後者の記述によって、関数型以外へのポインタ同士の相互変換はできるとなっていますから、型q T*から型T*への変換できないわけではありません。 また、前者の記述は、あくまでも型T*から型q T*への変換のことであって、型T**から型q T**への変換のことではありません。型T**は、(T*)*というイメージですし、型q T**なら(q T*)*という

    C言語におけるポインターとconstの関係について
    crk
    crk 2008/11/27
  • http://www.ed.kuki.tus.ac.jp/cgi-bin/vahwebx.exe/Ja_JP/cforaix/Extract/0/caix/language/ref/declarations.const_cv_qualifier.htm

    crk
    crk 2008/11/27
  • C++の基礎 : const 修飾子

    BREW C++ ライブラリ & GUI フレームワーク & XML ミドルウェア / 携帯 Java アプリ圧縮ツール : 株式会社 ソフィア・クレイドル English FAQ C++の基礎 : const 修飾子 const 修飾子 C++ 言語には、定数を表現するための const 修飾子が用意されています。ここでは const 修飾子のさまざまな使い方について説明します。 const 修飾子を使う目的は、コンパイラによる最適化を促進するためと、プログラムの意味をより明確にすることです。 const 変数 変数の宣言に const をつけることで、その変数の値が書き換えられないようにできます。 const SIntN max_foods = 120; max_foods = 130; // コンパイル エラー const 引数 関数の引数に const を指定すると、その関数の中で

    crk
    crk 2008/11/27
  • ポインタと参照

    まずは,C++ではどのように実行ファイルが作られるのかを知る必要がある.エディタで書いたプログラム(ソースプログラム(source program))をコンピュータの理解できる機械語に翻訳する(コンパイル(compile)).このときできたプログラムをオブジェクト(object)という.このオブジェクトモジュールを連結させることをリンク(link)といい,連結させるプログラムをリンカ(linker)という.こうして実行可能形式ファイル(ロードモジュール(load module))ができる.ロードモジュールはファイルとしてハードディスクなどに格納されているで主記憶装置(メモリ)に展開しなければならない.この動作をロード(load)といい,OSによって行われる.ロードされたロードモジュールは,その先頭から実行を開始される.一般に,メモリは連続して並んだバイトの列で,ロードモジュールはメモリ上に