带有托管对象的 C++ vector

标签 c++ managed

你好,我需要一个充满托管对象的 vector (或其他类似的数据结构)。

通常我可以写:

std::vector<Object> vect;

但我不能使用:

std::vector<Object^> vect;

有人可以解释一下,如何更改声明或建议其他结构而不是 vector 。谢谢。

最佳答案

使用 .NET 通用列表类:http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

根据 user1237747 的评论要求,列出来自同一网页的枚举示例:

#include "stdafx.h"
using namespace System;
using namespace System::Collections::Generic;

int main(array<System::String ^> ^args)
{
    List<String^>^ dinosaurs = gcnew List<String^>();

    dinosaurs->Add("Tyrannosaurus");
    dinosaurs->Add("Amargasaurus");

    for each(String^ dinosaur in dinosaurs )
    {
        Console::WriteLine(dinosaur);
    }

    return 0;
}

将 String^ 替换为您需要的类型。您还可以使用 [] 运算符按索引访问列表元素。

通常,如果不是绝对必要的话,避免混合托管和非托管类型。

关于带有托管对象的 C++ vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14981633/

相关文章:

c# - 是否可以在 C# 和非托管 C++ 之间共享枚举声明?

c++ - PInvoke 返回带有二维数组的结构

c++ - 虚函数调用非虚函数,反之亦然

c++ - 使用 CGAL,是否可以对开放多边形网格执行 bool 运算?

c++ - 我怎样才能让一个类函数接受另一个对象? (C++)

c# - 从 C++ 调用 C#,返回值

solr - managed-schema 和 schema.xml 有什么区别

c# - 在 C# 中传递 IntPtr 指针后,在非托管 C++ 代码中分配数组,编码(marshal)处理类型

C++ 多维 vector 追加

c++ - 如何将库路径添加到编译器