C ++ вектор с управляемыми объектами

Здравствуйте, мне нужно, чтобы вектор (или некоторая другая структура данных, которая похожа) был заполнен управляемыми объектами.

Обычно я могу написать:

std::vector<Object> vect;

Но я не могу использовать:

std::vector<Object^> vect;

Может кто-нибудь объяснить, как изменить объявление или посоветовать другую структуру вместо вектора. Благодарю.

3

Решение

Используйте общий список класса .NET: http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

Перечислите пример перечисления с той же WEB-страницы, как того требует комментарий 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;
}

Замените строку ^ на нужный вам тип. Вы также можете получить доступ к элементам списка по индексу, используя оператор [].

Как правило, избегайте смешивания управляемых и неуправляемых типов, если это не является абсолютно необходимым.

4

Другие решения

Да, для управляемых типов есть структуры данных stl. Ниже приведен пример использования вектора (по вашему запросу).

#include <cliext/vector>

cliext::vector<Object^> vect;

Документы для этого типа вектора Вот

4

По вопросам рекламы [email protected]