Tôi đang cố gắng tạo danh sách/bộ sưu tập các đối tượng C++ trong C++/CLI và tôi đã thử nhiều cách khác nhau nhưng không có gì hoạt động (lỗi tại thời gian biên dịch).Tạo một số loại danh sách đối tượng C++ trong C++/CLI
Tôi đã thử:
List<MyCppObject*> ^myList; //Does not allow non-.NET objects
ArrayList ^myList;
...
myList->Remove(myCppObject); //cannot convert parameter 1 from 'MyCppObject *' to 'System::Object ^'
yêu cầu của tôi:
1) Danh sách PHẢI chứa C++ đối tượng
2) Tôi cần khả năng loại bỏ một đối tượng cụ thể (ví dụ vector sẽ không hoạt động vì nó chỉ đẩy/bật lên trên cùng)
Câu hỏi: Làm cách nào để tạo danh sách/bộ sưu tập các đối tượng C++ trong một hàm C++/CLI làm việc với khả năng dễ dàng loại bỏ một đối tượng cụ thể?
Hãy cho tôi biết nếu có ai muốn thêm một số thông tin bổ sung; Cảm ơn trước sự giúp đỡ của bạn!
Không có gì sai với gọi 'std :: vector :: erase () ', nó chỉ là không tối ưu về hiệu suất nếu bạn làm điều đó rất nhiều. Ngoài ra, 'std :: list ' đã chèn/xóa nhanh bất kỳ đâu và không làm mất hiệu lực trình vòng lặp. –
'std :: vector :: erase()' là O (N), giống như CLR 'List .RemoveAt()' và 'ArrayList.RemoveAt()', vì vậy nếu bạn hài lòng với đặc tính hiệu suất của Danh sách , bạn sẽ hài lòng với véc tơ. –
@Kerrek SB: không, nó sẽ không được sử dụng một tấn, vì vậy hiệu suất khôn ngoan tôi cho rằng nó sẽ là ok. Nhưng như tôi thấy bây giờ, nó chỉ mất trong một chỉ số như một tham số (không phải là một đối tượng)? Vì vậy, tôi cho rằng tôi sẽ phải thực hiện tìm kiếm của riêng mình để tìm chỉ mục và sau đó xóa chỉ mục đó? – developer