STL.NET - vector
http://www.microsoft.com/japan/msdn/vs05/visualc/stl-netprimer.aspを読みながらSTL.NETでも弄ってみようかと思ってましたが、なんか上手く行かないです。cli/vectorがcliext/vectorになっているとかはいいのですが、
sort( &arr[0], &arr[ arr->Length ] );
とかするとエラーの嵐が出たりとか。ちょっとクセがあるのか実装が不完全なのかよく分からないです。(^^;
取りあえず、試行錯誤の跡。
#include "stdafx.h" #include <cliext/string> #include <cliext/vector> #include <cliext/algorithm> #include <cliext/functional> using namespace System; // STL.NETの名前空間 using namespace cliext; void test_vector_int() { vector<int> vi; vi.push_back(1); vi.push_back(2); vi.push_back(3); reverse(vi.begin(), vi.end()); vector<int>::iterator it = vi.begin(); while (it != vi.end()) { Console::WriteLine(*it++); } sort(vi.begin(), vi.end()); for each (int n in vi) Console::WriteLine(n); } void test_vector_string() { vector<string^> v; // v.push_back("ABC")させて欲しい・・・ v.push_back(gcnew string("ABC")); v.push_back(gcnew string("DEF")); v.push_back(gcnew string("GHI")); reverse(v.begin(), v.end()); vector<string^>::iterator it = v.begin(); while (it != v.end()) { // string -> Stringでメンバ変数直接使うのは嫌だなぁ Console::WriteLine*1; for each (string^ s in v) Console::WriteLine(s->_Mycont); } bool compare_less(String^ lhs, String^ rhs) { return lhs < rhs; } void test_vector_String() { vector<String^> v; v.push_back(gcnew String("ABC")); v.push_back(gcnew String("DEF")); v.push_back(gcnew String("GHI")); reverse(v.begin(), v.end()); vector<String^>::iterator it = v.begin(); while (it != v.end()) { Console::WriteLine*2; sort(v.begin(), v.end(), compare_less); for each (String^ s in v) Console::WriteLine(s); } int main(array<System::String ^> ^args) { test_vector_int(); test_vector_string(); test_vector_String(); return 0; }