【问题标题】:push_back operation in c# containersc# 容器中的 push_back 操作
【发布时间】:2011-01-19 12:00:31
【问题描述】:

我需要像 c++ vector 这样的容器。通常建议使用 List,但它不支持 push_back 操作。我知道这是为 List 容器实现扩展方法相当简单。但。 Stack 会是一个不错的选择吗?

谢谢!

【问题讨论】:

  • 为什么添加列表方法不适合您的目的?向量是fifo,而堆栈是filo。它们非常不同

标签: c# c++ list stack push-back


【解决方案1】:

它确实支持List<T>.Add。这不是你要找的吗?

【讨论】:

  • 谢谢!因为我以为它对应push_front
【解决方案2】:

在 C# 中您不会直接获得与 vector 等效的值,因为您无法控制内存的分配方式。 std::vector 将始终将其内存放在一个连续的块中;因此,如果需要,您可以像这样访问它:

std::vector<int> v;
// add items to v
CallSomeCFunction(&v[0]);

C# 无法控制内存的分配方式,因此不存在向量/数组和列表之间的区别。你可以使用List容器就是你想要的。

【讨论】:

  • 其实我相信ArrayList是存储在连续内存中的。
  • msdn.microsoft.com/en-us/library/… - 我也从未在以前的任何文档中看到过任何说明。以 GC 的工作方式,几乎不可能强制执行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 2015-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-26
相关资源
最近更新 更多