首页 > 试题广场 >

程序的输出为( )

[单选题]
#include<bits/stdc++.h>
using namespace std;
int main(){
int n = 5;
vector<int>a;
set<int>b;
for(int i = 1; i <= n; ++i){
a.push_back(i);
b.insert(i);
}
for(int i = 1; i <= n; ++i){
a.push_back(i);
b.insert(i);
}
cout<<a.size()<<b.size()<<endl;
return 0;
}


程序的输出为( )
  • 105
  • 510
  • 1010
  • 55
vector和set的区别:
1.首先vector属于顺序容器,其元素与存储位置与操作操作有关;set属于关联容器,其元素相当于键值。set能够保证它里面所有的元素都是不重复的(multiset除外)。
2.其次,由于存储结构不同,vector擅长于解决某个位置是什么值的问题,而set擅长于解决,某个元素在那个位置的问题,知道元素的内容,查找它的位置。因此vector特别好的支持随机访问,而set不支持(不支持下标访问)。
根据1可知,set存储的值不能重复,vector存储的值可重复:
#include<bits/stdc++.h>
using namespace std;
int main(){
int n = 5;
vector<int>a;
set<int>b;
for(int i = 1; i <= n; ++i){
a.push_back(i);           
b.insert(i);     
}                                          // 此时a=[1,2,3,4,5],b=[1,2,3,4,5];
for(int i = 1; i <= n; ++i){
a.push_back(i);                  
b.insert(i);
}                                         // 此时a=[1,2,3,4,5,1,2,3,4,5],b=[1,2,3,4,5];
cout<<a.size()<<b.size()<<endl;
return 0;
}
发表于 2019-10-19 11:47:41 回复(0)
set是集合,只能存放唯一值
发表于 2019-08-31 17:13:03 回复(0)