您好,我需要向量(或其他類似的數據結構)填充託管對象。帶有託管對象的C++向量
通常我可以這樣寫:
std::vector<Object> vect;
但我不能使用:
std::vector<Object^> vect;
有人能解釋一下,如何改變聲明或建議其他結構,而不是載體。謝謝。
您好,我需要向量(或其他類似的數據結構)填充託管對象。帶有託管對象的C++向量
通常我可以這樣寫:
std::vector<Object> vect;
但我不能使用:
std::vector<Object^> vect;
有人能解釋一下,如何改變聲明或建議其他結構,而不是載體。謝謝。
使用.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;
}
替換字符串^與你所需要的類型。您還可以使用[]運算符按索引訪問List元素。
通常,避免混合託管和非託管類型,如果這不是絕對必要的話。
該類型可以是一個值類嗎?如果是的話,List可以聲明爲List
是的,有管理類型的stl數據結構。以下是使用矢量的示例(根據您的請求)。
#include <cliext/vector>
cliext::vector<Object^> vect;
你背後的意圖是什麼?你使用C++/CLI嗎?或者說WinRT? – 2013-02-20 13:58:48
使用.NET通用List類:http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx – 2013-02-20 14:00:17
@AlexFarber這是關於C++,而不是C#。 – 2013-02-20 14:07:30