C++

C++_std::vector の初期化

初期化方法を意識していなかった。std::vector hh (5) の記述で初期化方法知った。※ 宣言のみだと要素数 0 なので push_back などで追加。 要素数を指定した宣言 動的配列はサイズを増減させることが出来るが、データ領域の確保・破棄とデータのコピー処理を…

論理演算の使い道メモ

左シフトやら右シフトすれば bit 変換 ( 記事最後のヤツ ) できるのか疑問だったので調べた。コピペ。 ビット数が違うデータ同士の計算 10 bit と 12 bit で出力された同値の数を int 型変数 16 bit に入れると、以下のようになる。|| は論理和ではなくただ…

C++_ C4819:ファイルは現在のコードページ(932)で表示できない文字を含んでいます

「C4819:ファイルは現在のコードページ(932)で表示できない文字を含んでいます。ファイルをUnicode形式で保存してください」とエラー。 エラーが出たファイルの文字コードは utf-8 ( 65001 ) 。932 は shift_jis 。utf-8 でも BOM がないと C4819 エラーが発…

C++ C++/CLI の配列の書き方

分からなくなる。 C++ int p[ 10 ]; int p[ ] = { 1, 2, 3 }; // 初期化 or int* p = new int[ foo ]; // 要素数を変数とする場合。int foo = 5; C++/CLI // unmanaged int* p = new int[10]; int p[ ] = { 1, 2, 3 }; // 初期化 // managed array< int >^ p…

Visual Studio_LNK2001 外部シンボル "xxxxx" は未解決です

問題ファイルは hogehoge.obj 。 関数が宣言されているのに、定義されていない場合に出る。 詳しく 関数のプロトタイプだけしかなくとも ( 定義されていなくとも ) 、ソースはコンパイルできるので、 hogehoge.obj が生成される。 リンカは、オブジェクトフ…

Visual Studio_このプロジェクトではユーザーの入力が必要です

Git から落としてソリューションファイル ( .sln ) を実行したら、下記のエラーが表示され、プロジェクトが読み込まれない。( 0 プロジェクト ) このプロジェクトではユーザーの入力が必要です。詳細を調べるには、プロジェクトを再度読み込んでください。 …

Visual C++_プロジェクトに対して作成されるファイルの種類

C++

プロジェクト名..vcproj やら .vcxproj やら .vcxproj.filters とか未知だったので。 実際にプロジェクトにインクルードされるファイルは、プロジェクトの種類・およびウィザードで選択したオプションによって異なる。 .exe .dll 実行可能ファイルまたはダイ…

Visual Studio_C++ で Windows フォームの項目がない

C++

結論から 場所C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\内にあるフォルダ「VCProjectItems_WDExpress」を「VCProjectItems」にリネームする。 何故か 「 Visual Studio のレジストリのパスの値」と、「 Visual C++ のテンプレートのフォルダ…

C++_ポインタと配列の一覧

↑ が投稿日付 new

C++_std::copy 追加

勘違いしていた。引数に指定した分がコピーされるのではなく、-1 されてコピーされる。故に第二引数は、コピーしたい範囲の + 1 とする。 std::copy ( InputIt first, InputIt last, OutputIt d_first ); first, last コピーする要素の範囲。 d_first コピー…

C++_std::copy

コピペ。 std::copy ( InputIterator first, InputIterator last, OutputIterator result );指定された範囲の要素をコピー。 result は [ first, last ) の範囲に含まれてはならない。[ first, last ) 内の要素を、それぞれ [ result, result + (last - firs…

C++_イテレータ ( iterator ) とは

std::copy で出てきたので。一応前に調べていた…。一応 C++ 配列を調べたので少し理解できるようになったかも。ただのコピペ。 抽象化されたポインタのことで、コンテナの要素を指し、移動や要素を参照・変更することが出来る。配列やコンテナのような範囲を…

C++_shared_ptr とは

ただのコピペ。スマートポインタの一種。メモ程度。しっかり理解はしていない。cv::Ptr<T> が知りたかった。cv::Ptr<T> は shared_ptr と同様のもの。 あるメモリの所有権を持つ unique_ptr<T> がただ一つに限られていたのに対し、shared_ptr<T> は同一のメモリの所有権</t></t></t></t>…

C++_スマートポインタ とは

ただのコピペ。cv::Ptr を調べたらスマートポインタという単語が出てきた。 cv::Ptr:参照カウント方式のスマートポインタ。メモリ管理してくれる。 リソースを自動的に解放してくれる。new のように動的に確保したオブジェクトへのポインタを保持して、自動…

C++_std::unique_ptr のメモ

よく分からんけど調べた。 #include <memory> が必要。スマートポインタを先に知っておいた方が理解しやすいかも。 ポインタを通して他のオブジェクトを所有・管理し、スコープから外れたときにそのオブジェクトを処分するスマートポインタ。ポインタの所有権を唯一</memory>…

C_演算の優先順位と結合規則

コピぺ。 優先順位:どれから先に演算を行うか。 結合規則:優先順位が同一であった場合、どの演算を先に行うか。 単項演算:被演算子 ( オペランド ) が一つだけあるような演算のこと。ex ) ++x, x++, &x, *x, !x など。 被演算子:演算子の演算の対象。5 *…

C++_ポインタとインクリメント 追加

コードの文脈から何となくわかったが、詳細には分からなかったので。 前提知識。演算の優先順位と結合規則を知っておく必要あり ? foo++:後置演算 ( 後置インクリメント )bar = foo++ の場合、代入した後で ++ 処理。* や & の単項演算子や、四則演算子より…

C++_配列の &*p メモ

&*p が分からん。&p も分からん。p は配列。未解決。 配列からポインタの読み替え の例外 読み替える:意味は同じで語句だけを変える。ex ) A を B に読み替える。A の意味を保ったまま B という名称に変わる。 式の中では、配列は「先頭要素へのポインタ」…

C_ポインタと配列における添字演算子

p:はポインタ。 添字演算子 [ ] はオペランドのポインタに対する加算命令。p [ n ] の場合は、* ( p + n ) を行っているのと同じ。ex ) p [ 4 ] の場合は * ( p + 4 ) と同じ。まずポインタに 4 を加算 ( アドレス値に 4 * 4 で 16 加算 ) し、そのアドレス…

C_ 2 つのポインタ変数の差と比較

コピペ。 ある配列内の要素を指している 2 つのポインタ値 p, q の差 p - q をとると、それは p が指す要素の添字と q が指す要素の添字の差となる。 &ary[4] - &ary[1] == 3 これは、2 つのポインタが指すアドレス間にある要素の個数と思えばよい。 「ポイ…

C_ポインタ変数のインクリメント

コピペ。 配列のある要素を指しているポインタ変数 p に対して、インクリメント操作 p++ を行うと、 p が指す要素の添字が 1 増え、デクリメント操作 p-- を行うと、添字が 1 減る。 ex ) では、配列 ary の先頭のアドレスが代入されたポインタ変数 p に対し…

C_ ポインタ値 + 整数値

コピペ。ソース意味は分かったと思う。配列とポインタ 02 の図参照。 配列の要素を指すポインタ値には、整数値を足したり引いたりすることができる。その場合、ポインタ値が指す要素から、足された ( 引かれた ) 数だけ後ろ ( 前 ) の要素を指すポインタ値と…

C_ポインタによる配列のアクセス

ただのコピペ。分からなくなる。 これは整数型配列。 int ary[5]; だが、下記は配列 ary の先頭要素 ary [0] を指すポインタとなる。&array [0] と同じ。 ary; また、配列 ary の先頭要素のアドレスが入ったポインタ変数 p に、p [n] のように添字を付けると…

C_ 式は変更可能な左辺値である必要があります

上記のコンパイルエラーが出た。 左辺値をもつ:代入の対象となる。左辺値を持たない:代入の対象とならない。左辺値:代入式の左辺にくることが可能な式のこと。 メモリ位置を示す式は「左辺値」式と呼ばれる。左辺値は、記憶領域としてのロケ―ター値や 等…

C_ 配列とポインタ 02

C++ で書いていたけど C に通じるので C タグ。よく分からん。 ポインタのアドレス計算 → ポインタと文字列 ポインタのアドレス計算 ポインタに 1 加える、ということはポインタに格納されているアドレス + 型のサイズ、のこと。ポインタに格納されているア…

C_配列とポインタ 01

C++ で書いていたけど C に通じるので C タグ。よく分からん。 配列変数名は、配列の先頭アドレスを指している。 char array[10]; // array と &array[0] は同じ値となる。 変数と配列の違い char a = 'A'; // a は A // &a は a のアドレス char a[4] = "AB…

C++_文字・文字列の取り扱い

配列ポインタとかよく分からない。ただのコピペ。 char 型 C 言語では文字を取り扱う場合に、char 型を利用する。 char 型の変数のサイズは 1 バイトなので、1 つの変数には 1 文字しか格納できない。記述する時は 'A' と ' を使用。1 バイト = 8 ビット。1…

C++_配列 メモ 02

ポインタが知りたいが復習がてら。要素数の取得 → 配列とポインタ 要素数の取得 sizeof で求まる。 p:配列の変数。1 byte = 8bit 。1 bit は 二者択一。0 or 1 。 sizeof(p):配列全体のバイト数。sizeof(*p):1 要素のバイト数。sizeof(p) / sizeof(*p):…

C++_配列 メモ 01

ポインタが知りたいが復習がてら。 宣言 → 初期化 → 既定値 ソースの変数は使いまわし。本来なら別変数。 宣言 // OK int p[10]; // OK const int num1 = 10; int p[num1]; // 定数式の必要あり。 // NG int num = 10; int p[num2]; // OK int num = 10; int…

C++_virtual 仮想関数 メモ

前提知識:多態性ポインタ云々はスル―。よく分からん。デストラクタ云々もスル―。重要そうけど。 派生クラスで再定義されるメンバ関数のこと。virtual 修飾子をつける。親クラスのポインタから、子クラスの ( オーバーライドした ) 関数を呼び出す時に使う。…