托管C++中的列表<元组<int,浮点>>
A List<Tuple<int, float>> in managed C++
我正在开发一些软件,这些软件是用本机C++编写的,带有托管C++包装器和C#中的用户界面。我需要将一些信息从本机代码一直传递到接口。我能想到的传递信息的最好方法是在元组列表中。我知道在本机C++中我需要使用list<tuple<..>>
,这很好。我现在想做的是在包装器中获取输出,并返回一个List<Tuple<..>>
,它是System::Collections::Generic::List
和System::Tuple
,而不是来自本机的stl。我知道这些列表在语法上非常不同,但这不应该是问题所在。在C#代码中,编译器接受List<Tuple<..>>
,但在托管C++代码中则不接受。我是不是做错了/我使用了错误的数据类型?任何帮助都会很棒!
试试这样的东西:
using namespace System::Collections::Generic;
// A List<Tuple<int, float>> in managed C++
public ref class TupleTest
{
public:
static List<Tuple<int, float>^>^ GetTuple() {
List<Tuple<int, float>^>^ ret = gcnew List<Tuple<int,float>^>();
Tuple<int,float>^ t = gcnew Tuple<int,float>(5, 2.6);
ret->Add(t);
return ret;
}
};
注意:如果您愿意,可以使用Int32和Single(或Double)而不是int/foat。
编辑:请注意^
运算符。这些表示C++/CLI引用类型。你会经常使用它们的!(这有点像普通C++中指针的*
,但表示GC的引用类型)
相关文章:
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 呼叫运营商<<临时
- 如何防止clang格式在流运算符调用之间添加换行符<<
- <<操作员在下面的行中工作
- EASTL矢量<向量<int>>连续的
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- 为什么将此对向量&lt; map&lt; int,int&gt;&gt;中的地图进行更新.失败
- C :对矢量进行排序&lt; struct&gt;(结构有2个整数)基于结构的整数之一
- 明确的专业化“ CheckIntmap&lt;&gt;”实例化
- 什么是模板&lt;&gt;inline bla bla
- 编辑C Qlist&lt; object*&gt; gt;QML代码和一些QML警告中的模型
- eigen :: llt&lt;eigen :: matrixxd&gt;具有不完整的类型
- 错误,包括&lt; ctype&gt;在原子上使用C 11
- std::vector<;uint8_t>;当C++11/14启用时,手动复制而不是调用memcpy
- 如何加入向量&lt; int&gt;到C 中的单个INT
- 是std :: set&lt; std :: future&gt;不可能存在
- 是numeric_limits&lt; int&gt; :: is_modulo从逻辑上矛盾
- opencv 2.4.7在iOS错误背景_segm.hpp #include&lt; list&gt;未找到
- 在修改列表后,std :: list&lt; t&gt; :: end()的值是否会更改
- ///<评论></评论>在Visual Studio中