C++

C++/CLI_ C# の List と PointF を扱う

auto を使った方がソースは見やすいかも。ex ) は int 型の List System::Collections::Generic::List<int> ^ hogaList = gcnew System::Collections::Generic::List<int>(); //auto ^ hogaList = gcnew System::Collections::Generic::List<int>(); System::Drawing::Point</int></int></int>…

C++_ vector にて、最大値のイテレータを取得

イテレータ ≠ インデックス らしい。よく分からない。 std::vector<float>::iterator max = std::max_element(hoga.begin(), hoga.end()); size_t maxIndex = std::distance(hoga.begin(), max); maxIndex が 最大値のイテレータ。 hoga は vector<float> 。 distance で先</float></float>…

C++_生配列 ・ std::vector より std::array を使う

std::array 使った方がデータを扱うのが楽・安全、ということだと思う。 std::array の利点 at を使用すると境界チェックが行われるので安全にデータアクセスできる。 従来の C スタイルの配列とパフォーマンスが変わらない ( 速度同じ )。 std::vector と比…

C++_宣言した添え字の範囲外に代入した時

※生配列。std::array の場合は不明。※C 言語サイトを参照してるので、違うところあるかも。 結論から エラーが出なくとも、他の変数に ( 値が変わったりなど ) 影響する可能性がある。故に、宣言された範囲外のインデックスを持つ配列要素への代入は NG。 回…

C++/CLI_ List に要素を追加する

結論から。 hogeList->Add( xxx ); ソース System::Collections::Generic::List<int> ^ hogeList = gcnew System::Collections::Generic::List<int> ( ); //または //auto hogeList = gcnew System::Collections::Generic::List<int>( ); hogeList->Add(10); hogeList->Add(</int></int></int>…

C++_ std::array が使えない

「不完全な型は使用できません」 とコンパイルエラー。 ファイル冒頭に以下を追加する。 # include <array> これでstd::array<int, 5> hoga = { 0,1,2,3,4 }; のコンパイルエラー解消。 コンパイルエラー:構文が間違っている。文法レベルのエラー。 実行エラー:構文は問題</int,></array>…

C++_ 保護されているメモリに~操作を行おうとしました。

保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリが壊れていることが考えられます。 このエラーを出した時は、基本 インデックスが配列の範囲外 という意味。(※ 自分の場合 ) C++ は、範囲外のインデックス要素変数を扱って…

C++/CLI_ ref とは

C++/CLI のカテゴリーが登録できない。C++ [ / ] ではじかれる。 結論 参照クラス ( マネージクラス ) は ref で宣言する。 マネージクラス ( C ++/C LI ) を作成すると、[ public ref class HogeClass ] と ref がつく。この ref は マネージクラスですよ、…

C++_using namespace std; が非推奨なワケ

std:標準ライブラリ。vector や数学の二乗などよく使う関数がこの名前空間の中に入っている。 using namespace std; はNG。 標準の関数と同じ名前の関数を作ってしまった時、区別がつかなくなる故、std という名前空間にあるコードを、自分が作った名前空間…

C++_これらのオペランドと一致する演算子 "<<" はありません

以下のソースを書いたらこのようなエラーが出た。 std::string a = "Hello";std::cout << a << std::endl; これらのオペランドと一致する演算子 "<<" はありませんオペランドの型 std::ostream << std::string 対処は、ファイル上部に #include <string> を記述すれ</string>…

C++/CLI_ C++ の DLL 作成 (Ver プロジェクト)

※ C # から使う。 下記手順ではC ++ のクラスはまだ作っていない。C # から C++ で書いた関数を呼び出すために仲介者として C ++/CLI のクラスを作っている。 C ++ のクラスを作成したい場合、C ++/CLI のクラスを作成する際には[ マネージ ] にチェックを入…

C++/CLI_ CLI と CLR

分からなくなる。 C L I:共通言語基盤 ( Common Language Infrastructure )C L R:共通言語ランタイム ( Common Language Runtime ) C L I M icrosoft 社の「 M icrosoft.Net 」のプログラム実行環境の仕様。M icrosoft.NET:動作環境を提供するシステム基…

C++/CLI_ CTSとは

共通型システム Common Type Systsem プログラム言語に依存しない言語共通のデータ型を提供する為の仕組み。 中間言語 ( MSIL ) ならびに共通言語ランタイム ( CLR ) の中核となる機能。 C# のデータ型もこの共通型システムを基盤としている。 スタックメモ…

C++/CLIとは ( 追記 )

Managed C ++ の後継言語。 Managed C ++ とは .NET Framewor k は Microsof t が設計した、共通中間言語( Common Intermediate Language / CIL ) と呼ばれる、言語を実行する仮想マシン 環境 ( ランタイム ) のこと。 ネイティブシステムを抽象化するシステ…

C++ と C# と C++/CLI

C ++ C 言語の拡張として開発されたプログラミング 言語。C 言語との互換性がある。故に開発で一緒によく使われている。C ++を使うためには、C 言語の知識は必須。 標準C ++・ネイティブC ++ (上記の C ++ のこと) C 言語とネイティブC ++ がプログラミング …

C++_ソースの折りたたみ機能

C# と少し異なり、C++ は pragma を追加する。 #pragma region Fuga( 説明 ) public void fuga(){ //処理 }#pragma endregion region [ 可算名詞 ]:領域 pragma [ 名詞 ]:(ギリシャ語) 事実、事物、重要事、問題。ディレクティブ( 指令 )の意味になる( ? )…