【问题标题】:c++ winforms and standard library containersc++ winforms和标准库容器
【发布时间】:2013-09-22 16:26:00
【问题描述】:

我正在寻找与 winforms 项目一起使用的容器。 起初我使用std::vector,但在little search 之后我发现在winforms 项目中使用STL 是错误的。 我找不到任何关于任何 c++ winforms 容器的纪录片,所以我需要一个解决方案。

我正在使用 Visual Studio 2012。

【问题讨论】:

标签: c++ winforms stl containers stdvector


【解决方案1】:

不知道他们为什么不给你投票,因为这实际上是 C++。这只是微软的版本。此外,您不需要“需要” stl 矢量或任何“特殊”容器。.Net 已经为其中一些东西提供了框架。通常混合托管和原生 C++ 是一个坏主意,但在某些情况下它工作得很好。

签出如下容器:

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

等等..

【讨论】:

  • 该语言称为 C++/CLI,不要与 C++ 混淆。
  • C++ 和 C++/CLI 是针对不同平台的不同语言。一个有效的 C++ 程序也是一个有效的 C++/CLI 程序这一事实不允许得出它们是同一种语言的结论。我对这个问题投了反对票,因为我看不到 GUI 框架的选择和容器类之间的关系。
  • 使用这些信息我从谷歌得到更好的答案:)
【解决方案2】:

如果你想使用 stl,微软从 3.5 版本开始为 .net 框架提供了它作为 STL/CLR。 (see here for details)

但是 .net 框架在 System.Collections 命名空间中包含自己的容器(使用装箱/拆箱操作来存储值),适用于所有版本 (see here for details) 和 System.Collections.Generic 命名空间(更多使用泛型,没有装箱/拆箱操作从版本 2.0 (see here for details) 开始存储值。
如果您想在控件中显示列表项(例如 ListBox 或 ComboBox),请使用 BindingListsee here for details)

合并答案!

【讨论】:

  • 选择您的答案之一。
  • 在两条消息中填写我的答案。由于声誉,它分为两部分。
  • 只删除一个!现在它包含所有链接,对吗?我猜有理由限制低代表 SO 成员可以发布的链接数量?!?
  • 是的,现在这里有所有链接和完整答案,感谢合并消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
相关资源
最近更新 更多