vector中find 的用法

本文介绍了一种高效的方法来找出两个std::vector容器之间的不同元素。通过遍历第二个vector并检查其元素是否存在于第一个vector中,可以收集所有仅在第二个vector中存在的元素。
部署运行你感兴趣的模型镜像

vector没有自带的find函数,需要用普通的find函数,使用如下:

 

vector<string> nameList1;
//给nameList1赋值
string name;
if(find(nameList1.begin(),nameList1.end(),name) == nameList1.end()){
//没有找到
}
else{
//找到了
}



如果找到一个vector中有、一个vector中没有的元素,如何会快速一点。下面找出nameList2中有的,nameList1中没有的元素。

	vector<string> nameList1;
	vector<string> nameList2;
	vector<string> nameList;
	//给nameList1、2赋值 省略
	vector<string>::iterator itit1;
	vector<string>::iterator itit2;

	//for(int i=0;i<nameList2.size();i++){
	for(itit2 = nameList2.begin();itit2<nameList2.end();itit2++){
		//string name = nameList2.at(i);
		string name = *itit2;
		itit1 = find(nameList1.begin(),nameList1.end(),name);
		if( !(itit1 == nameList1.end())){
			//找到了
			//nameList2.erase(itit2);注意此处不能erase,不然会导致itit2失效,itit2++时会出错			
			nameList1.erase(itit1);
		}else{
			//没有找到
			nameList.push_back(name);
		}
	}


 

最后nameList中的即为所求得的结果。

这样将在nameList1和nameList2中共同出现的元素每次找出时将nameList1中的去掉,这样可以缩小搜索的范围,提高检索速度,尤其是当数据量很大的情况下。

 

 

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值