从C++的角度讲解C#容器

时间:2021-05-06 01:22:39

讲解C#容器的文章网上一搜一大把,作为一名C++程序员如何高效学习C#容器呢,其实学语言如果能讲到这点就能触类旁通,举一反三,那效果是最好的

问题市面上没有这样的书籍,那就跟着老白来一起从C++的角度去讲解C#容器

1.List<T> - std::vector<T>

C# 中的 List<T> 是一个动态数组,可以存储任何类型的对象,类似于 C++ 中的 std::vector<T>。它们都提供了添加、删除、查找等功能,并且可以自动调整大小以适应存储的数据量。

这个老白刚学的时候也容易搞晕,以为c#的List是链表

2.Dictionary<TKey, TValue> - std::unordered_map<Key, Value>

C# 中的 Dictionary<TKey, TValue> 是一种键值对集合,其中每个键都是唯一的,类似于 C++ 中的 std::unordered_map<Key, Value>。它们都提供了添加、删除、查找等功能,并且可以通过键来访问值。

C#找不到map,原来在字典里

3.Stack<T> 和 Queue<T> - std::stack<T> 和 std::queue<T>

C# 中的 Stack<T> 和 Queue<T> 分别是后进先出(LIFO)和先进先出(FIFO)的数据结构,类似于 C++ 中的 std::stack<T> 和 std::queue<T>。它们都提供了添加、删除、查找等功能,并且可以用于许多不同的应用程序。

这个没啥好说,中规中矩

4.HashSet<T> - std::unordered_set<T>

C# 中的 HashSet<T> 是一个无序的集合,其中不允许重复的元素,类似于 C++ 中的 std::unordered_set<T>。它们都提供了添加、删除、查找等功能,并且可以用于高效地查找和比较数据。

5.SortedSet<T> - std::set<T>

C# 中的 SortedSet<T> 是一个有序的集合,其中不允许重复的元素,类似于 C++ 中的 std::set<T>。它们都提供了添加、删除、查找等功能,并且可以按照元素的顺序进行访问。

6.LinkedList<T> - std::list<T>

C# 中的 LinkedList<T> 是一个双向链表,可以存储任何类型的对象,类似于 C++ 中的 std::list<T>。它们都提供了添加、删除、查找等功能,并且可以通过链接节点来实现高效的插入和删除操作。

注意这才是链表数据结构

另外需要注意的是,C# 和 C++ 中的容器虽然有相似之处,但是它们在实现细节和性能上可能存在较大差异。因此,在使用这些容器时,应该根据具体的情况来选择适当的容器,并结合实际测试来评估其性能和效率。

好了,希望对转Unity,学习C#的你有帮助。

从C++的角度讲解C#容器