上面的代码可以不用vector码
时间: 2024-03-24 10:37:27 浏览: 60
Vector_embed_code
是的,使用 set 容器可以完全替代 vector 容器,从而无需使用 vector 容器来存储原始数据。下面是使用 set 容器进行去重的代码:
```cpp
#include <iostream>
#include <algorithm>
#include <set>
using namespace std;
int main() {
int n;
cin >> n;
set<int> s;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
s.insert(x);
}
cout << "不同的整数个数为:" << s.size() << endl;
cout << "不同的整数为:";
for (auto it = s.begin(); it != s.end(); it++) {
cout << *it << " ";
}
cout << endl;
return 0;
}
```
这段代码首先定义了变量 n,表示需要读入的整数的个数,然后使用 cin 读入 n 的值。
接着,定义了一个 set<int> 类型的 s 容器,用于存储 n 个整数,并且使用 set 容器自动去重。在读入每个整数时,直接使用 set 的 insert() 函数将其插入到 s 容器中。
最后,使用 set 的 size() 函数输出不同的整数个数,使用 set 的迭代器遍历 s 容器中的元素,并输出每个元素的值。注意,set 的迭代器是一个 const_iterator,即不允许修改元素的值,因此需要使用 *it 来获取元素的值。
阅读全文