C# 容器中的push_back操作

发布于 2024-10-12 15:02:19 字数 107 浏览 7 评论 0原文

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

谢谢!

I need container like c++ vector. Often it is adviced to use List, but it dosen't support push_back operation. I know this is rather simple implementing an extension method for List container. But. Would Stack be a good alternative?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

绳情 2024-10-19 15:02:19

它确实支持 List。添加。这不是您要找的吗?

It does support List<T>.Add. Isn't that what you are looking for?

挥剑断情 2024-10-19 15:02:19

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

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

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

You won't get a direct equivalent to vector in C# because you have no control over how the memory is allocated. std::vector will always have its memory in a contiguous block; so if needed, you could access it like so:

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

C# gives you no control over how the memory is allocated, so the distinction between a vector/array and a list is non-existent. You can use the List container is what you want.

看透却不说透 2024-10-19 15:02:19

ListName.Add(element); 的复杂度为 O(1)

ListName.Insert(index,element); 的复杂度为 O(n ) 复杂性

,第一个就像我们在 cpp 中使用的 push_back() 函数,它会附加元素

insert 主要用于当我们想要在它涉及的特定索引处添加元素时元素的移动,因此根据您放置元素的位置,元素的复杂性可能会略有不同,因为在大列表的开头添加元素必须移动元素的其余部分,而当我们在列表末尾输入元素时,它花费的时间会稍微少一些。

ListName.Add(element); has O(1) complexity

ListName.Insert(index,element); has O(n) complexity

as the first one is like the push_back() function we use in cpp and it will append the element

insert is used mainly when we want to add element at a specific index it involves shifting of element so depending where you put your element complexity may slightly vary as adding element at beginning of large list has to shift rest of the element where as we enter element at the ending of the list it take slightly less time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文