c++ set 和 vector的区别
3个回答
展开全部
set是集合,其中的元素是有序排列的,需要指定排序规则,而且不能包含重复元素;
vector可以看成是一个不固定大小的数组,可以在其中加入各种元素。
vector可以看成是一个不固定大小的数组,可以在其中加入各种元素。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
item 指针相同就说明item相同的,所以不需要比较item值,只要比较指针就可以了
bool flag=false;
iterator v=vector.beign()
while(v!=vector.end())
{
iterator iv=v.bigen()iterator is=set.begin()
while(iv!=v.end()){if(iv!=is),break;iv++;is++}
if(iv==v.end()){flag=true,break;}
}
if(flag)
found;
else
notfound;
大概就是遍历一遍vector ;来查找
建议vector 里存放 set指针,这样就不需要比较set内部的值是否相同了
vector<*set<*item>>,写成这样就可以直接比较vector 的内容和set是否相等了
Set *set;
for(set*v:vector)
if(set==v)
flag=true,break;
if(flag==true)
found;
else
not found;
bool flag=false;
iterator v=vector.beign()
while(v!=vector.end())
{
iterator iv=v.bigen()iterator is=set.begin()
while(iv!=v.end()){if(iv!=is),break;iv++;is++}
if(iv==v.end()){flag=true,break;}
}
if(flag)
found;
else
notfound;
大概就是遍历一遍vector ;来查找
建议vector 里存放 set指针,这样就不需要比较set内部的值是否相同了
vector<*set<*item>>,写成这样就可以直接比较vector 的内容和set是否相等了
Set *set;
for(set*v:vector)
if(set==v)
flag=true,break;
if(flag==true)
found;
else
not found;
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询