2012-04-10 68 views
1

我想將我的hashmap添加到vC++ 08中的ArrayList中。我的代碼如下。如何將hashmap添加到C++中的ArrayList?

typedef std::tr1::unordered_map< std::wstring, std::wstring > hashmap;  
      hashmap numbers; 
     ArrayList^ myAL = gcnew ArrayList; 

myAL->Add(numbers); // gives error... 

但它給錯誤

error C2664: 'System::Collections::ArrayList::Add' : cannot convert parameter 1 from 'hashmap' to 'System::Object ^' 
1>  No user-defined-conversion operator available, or 
1>  No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called 

我試投與對象,但沒有成功。任何人都可以幫我添加hashlist在arraylist

在此先感謝...

回答

0

你嘗試上述不起作用,因爲管理和本地類型不會以這種方式直接互通操作。

我建議Kenny Kerr的經典C++/CLI文章Best Practices for Writing Efficient and Reliable Code with C++/CLI更詳細地找出您的具體互操作場景,但我認爲您想要做的是將一個指向您的本地對象的指針嵌入托管對象中,能夠添加到您的列表結構。如果您使用Kerr先生的AutoPtr class(在上面的文章中進行了介紹並更新了here),您應該能夠創建一個包含AutoPtr作爲成員的託管類,您可以將它添加到ArrayList中。

+0

感謝您的回答,我改變了我的計劃。並添加一些替代方法。 – 2012-04-19 06:20:54