std::set与std::vector在C++ STL中的区别
向量: 向量是类似动态数组的容器,具有在插入或删除新元素时调整大小的能力。它是标准模板库(STL)的模板,提供了程序的更大灵活性。向量的元素被放置在连续的存储器中,并使用迭代器遍历。
例子:
下面是在C++中使用向量的实现:
输出:
时间复杂度:O(N)//对于N次插入
辅助空间:O(1)
集: 集也是标准模板库(STL)的模板之一。它是一个唯一元素的容器,一旦添加到集中,其值就不能被修改,但可以删除或插入。集合的元素总是以排序形式存储。
例子:
下面是在C++中使用集的实现:
输出:
时间复杂度:O(Nlog N)//对于N次插入
辅助空间:O(1)
向量和集之间的表格差异:
向量 | 集 |
---|---|
向量的元素是未排序的。 | 集的元素总是排序的。 |
它可以包含重复元素。 | 它只包含唯一元素。 |
向量是无序的。 | 集是有序的。 |
插入新元素的时间复杂度为O(1)。 | 插入新元素的时间复杂度为O(log N)。 |
向量在容器末尾插入和删除元素速度更快。 | 集合在容器中间插入和删除元素速度更快。 |