【发布时间】:2011-01-19 12:00:31
【问题描述】:
我需要像 c++ vector 这样的容器。通常建议使用 List,但它不支持 push_back 操作。我知道这是为 List 容器实现扩展方法相当简单。但。 Stack 会是一个不错的选择吗?
谢谢!
【问题讨论】:
-
为什么添加列表方法不适合您的目的?向量是fifo,而堆栈是filo。它们非常不同
标签: c# c++ list stack push-back
我需要像 c++ vector 这样的容器。通常建议使用 List,但它不支持 push_back 操作。我知道这是为 List 容器实现扩展方法相当简单。但。 Stack 会是一个不错的选择吗?
谢谢!
【问题讨论】:
标签: c# c++ list stack push-back
它确实支持List<T>.Add。这不是你要找的吗?
【讨论】:
在 C# 中您不会直接获得与 vector 等效的值,因为您无法控制内存的分配方式。 std::vector 将始终将其内存放在一个连续的块中;因此,如果需要,您可以像这样访问它:
std::vector<int> v;
// add items to v
CallSomeCFunction(&v[0]);
C# 无法控制内存的分配方式,因此不存在向量/数组和列表之间的区别。你可以使用List容器就是你想要的。
【讨论】: