2013-09-22 54 views
1

我正在尋找與winforms項目一起使用的容器。 我最初使用的是std::vector,但在little search之後,我發現在winforms項目中使用STL是錯誤的。 我找不到任何有關任何C++ winforms容器的紀錄片,所以我需要一個解決方案。C++的winforms和標準庫容器

我使用Visual Studio 2012

+0

我來回答如果你答應的祕密告訴我製造,你可能曾經有每一個問題使用C++的Windows窗體項目。 – IInspectable

+2

@IInspectable:http://en.wikipedia.org/wiki/C%2B%2B/CLI - 在技術上不是C++,但這很可能是OP使用的。 –

+0

另請參閱此處[C++編程的託管擴展](http://msdn.microsoft.com/zh-cn/library/aa712574%28v=vs.71%29.aspx)。查找適合容器的'System :: List'。 –

回答

2

不確定他們爲什麼拒絕投票,因爲這實際上是C++。這只是微軟的版本。此外,您不需要「需要」stl向量或任何「特殊」容器.. .Net已經有一些這些東西的框架。通常混合託管和本地C++是一個壞主意,但在某些情況下,它工作得很好。

退房容器中,如以下幾點:

List<int>^ list = gcnew List<int>; 
list->Add(42); 
array<String^>^ strarray = gcnew array<String^>(100); 
strarray[0] = "Hello"; 

等..

+0

該語言稱爲C++/CLI,不要與C++混淆。 –

+1

C++和C++/CLI是針對不同平臺的不同語言。有效的C++程序也是一個有效的C++/CLI程序這一事實並不允許它們是相同語言的結論。我低估了這個問題,因爲我看不到選擇GUI框架和容器類之間的關係。 – IInspectable

+0

使用這些信息我從谷歌獲得更好的答案:) – user2367115

2

如果你想使用STL,微軟提供了它的.NET Framework作爲自3.5版本STL/CLR。 (see here for details

但是.NET框架包含在System.Collections命名空間中自己的容器(使用裝箱/拆箱操作來存儲值)的全部版本(see here for details)和System.Collections.Generic命名空間(更多使用泛型,沒有拳擊/取消裝箱操作以存儲值)從版本2.0開始(see here for details)。
如果你想顯示在控制列表中的項目(如ListBox或ComboBox),使用的BindingList <(see here for details

合併的答案!

+0

選擇你的答案之一。 –

+0

在兩封郵件中完整填寫我的答案。由於聲譽,它分爲兩部分。 – jumandgi

+0

只需刪除一個!現在它包含所有的鏈接?我猜想有一個理由來限制低代表SO成員可以發佈的鏈接數量! –