向量
向量(Vector)是类似于动态数组的容器,当插入或删除新元素时,可以调整其大小。它是标准模板库或STL的模板,为程序提供了更大的灵活性。vector
的元素被放置在连续存储中,并使用迭代器遍历。
例子:
vector <int> v;
v.push_back(1);
v.push_back(2);
v.clear();
下面是c++中向量的实现:
#include <bits/stdc++.h>
using namespace std;
// Driver Code
int main()
{
vector<int> v;
// Inserting elements in vector
v.push_back(211);
v.push_back(26);
v.push_back(212);
v.push_back(20);
v.push_back(10);
cout << "Elements in vector are:";
for (auto it : v) {
cout << it << " ";
}
return 0;
}
运行结果如下:
Elements in vector are:
211 26 212 20 10
时间复杂度 O(N) // 对于N次插入而言
辅助空间 O(1)
Set
集合(Set)也是标准模板库或STL的模板之一。它是一个独特元素的容器,这些元素的值一旦添加到集合中就不能被修改,但可以被删除或插入。集合的元素总是以排序的形式存储。
例子
set <int> s;
s.insert(1);
s.insert(12);
int key = 1;
s.erase(key);
下面是C++中集合的实现 -
#include <bits/stdc++.h>
using namespace std;
// Driver Code
int main()
{
set<int> s;
// Insert elements into the set
s.insert(211);
s.insert(26);
s.insert(212);
s.insert(20);
// Duplicate elements
s.insert(0);
cout << "Elements in set: ";
// The inserted elements get sorted
for (auto it : s) {
cout << it << " ";
}
return 0;
}
运行结果:
Elements in set:
20 26 211 212
时间复杂度。O(Nlog N) // 对于N次插入而言
辅助空间。O(1)
向量和集合之间的表格差异。
向量 | 集合 |
---|---|
向量的元素是不排序的。 | 集合的元素总是被排序的。 |
向量可以包含重复的元素。 | 集合只包含唯一的元素。 |
向量是无序的。 | 集合是有序的。 |
插入一个新元素的时间复杂度是O(1)。 | 插入一个新元素的时间复杂度是O(log N)。 |
Vector对于插入和删除容器末端的元素更快。 | Set对于插入和删除容器中间的元素比较快。 |
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:C++ std::set 和std::vector 的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-stdset-vs-stdvector-in-c-stl.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。
相关主题
- C++ map与unordered_map的区别
- C++ set 与 unordered_set的区别
- C++ std::set和std::list的区别
- C++ STL中Multiset和Multimap的区别
- C++ 中的 std::next 与 std::advance 的区别
- C++中 cout 和std::cout的区别
- C++中Const和Regular迭代器的对比及其示例
- C++中关系运算符(==)和std :: string :: compare()的区别
- C++中虚函数和内联函数的区别
- C++和Go的区别
- C/C++中float和double的区别
- C语言和C++