- - PR -
C++/CLIでqsort使う
1
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-11-15 13:49
STEPSと申します。
Windows2000 VC++2005 C++/CLI の環境で開発を行っております。 よろしくお願いいたします。 件名の通りqsortを使いたいのですが、 関数ポインタの宣言方法と、 引数の記述方法をご教授願えればと思い 書き込みを行いました。 よろしくお願いいたします。 | ||||||||||||||||
|
投稿日時: 2006-11-15 13:57
とりあえず、Web検索してみましょう。
サンプルコードはゴロゴロしていますよ。 Google検索 キーワード「qsort」 | ||||||||||||||||
|
投稿日時: 2006-11-15 14:01
ちなみに、マネージドのコードでqsortを使うことはないと思います。
System::Arrayの下のSortメソッド辺りでソートは可能です。 また、STLのstd::vectorやstd::listを使えば、ソートさせるメソッドや関数 は普通にあります。 | ||||||||||||||||
|
投稿日時: 2006-11-15 14:54
Blue様
ご回答ありがとうございます。 今回qsortを使おうと考えた理由が、他のC++言語からソースを移植しようと した為です。arrayを用いた配列の宣言方法に変更すると、 memset等が行えなくなってしまう為、qsortをそのまま使用したいと考えました。 qsortの検索で一番上に上がってくるページで qsort(data, 10, sizeof(int), (int (*)(const void*, const void*))compare_int); というサンプルが記載されていますが、 C++/CLI環境で同じ記述をすると 型キャスト' : 'overloaded-function' から 'int (__clrcall *)(const void *,const void *)' に変換できません。 というエラーが発生してしまいます。 やはり、C++/CLI環境ではSystem::ArrayのSortメソッドを使うべきなのでしょうか? 質問ばかりで申し訳ありませんがよろしくお願いいたします。 | ||||||||||||||||
|
投稿日時: 2006-11-15 15:03
array<〜>でもmemset使えますけど。
#pragma unmanaged #pragma managed の間に記述してください。 その際にコンパイルオプションを変更する必要があるかもしれません。(/clr)
ケースバイケースでしょう。 [ メッセージ編集済み 編集者: Blue 編集日時 2006-11-15 15:07 ] | ||||||||||||||||
|
投稿日時: 2006-11-15 22:29
Blue様
ご回答ありがとうございました。 unmanagedによりqsortを使用することができました。 (処理がまずかったらしくメモリを破壊しているようなエラーが発生しましたが。) 質問に答えていただきありがとうございました。 |
1