gpt4 book ai didi

c# - STL C++ 和 C# 容器之间的映射

转载 作者:IT老高 更新时间:2023-10-28 22:37:02 26 4
gpt4 key购买 nike

有人能指出常用的 C++ STL 容器(如 vector、list、map、set、multimap...)和 C# 通用容器之间的良好映射吗?

我已经习惯了前者,并且不知何故我已经习惯于用这些容器来表达算法。我很难找到与这些等效的 C#。

谢谢!

最佳答案

这是一个粗略的等价:

  1. Dictionary<K,V> <=> unordered_map<K,V>
  2. HashSet<T> <=> unordered_set<T>
  3. List<T> <=> vector<T>
  4. LinkedList<T> <=> list<T>

.NET BCL(基类库)没有红黑树(STL map)或优先级队列(make_heap()、push_heap()、pop_heap())。

.NET 集合不像 C++ 那样使用“迭代器”。他们都实现了IEnumerable<T> , 并且可以使用“foreach 语句”进行迭代。如果您想手动控制迭代,您可以在集合上调用“GetEnumerator()”,这将返回 IEnumerator<T>。对象。 IEnumerator<T>.MoveNext()大致相当于 C++ 迭代器上的“++”,“Current”大致相当于指针引用运算符(“*”)。

C# 确实有一个称为“迭代器”的语言特性。但是,它们与 STL 中的“迭代器对象”不同。相反,它们是允许自动实现 IEnumerable<T> 的语言功能。 .参见 yield return 的文档和 yield break声明以获取更多信息。

关于c# - STL C++ 和 C# 容器之间的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/741054/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com