C++中find函数的简单使用-----查找vector数组元素下标


C++中find函数

1 例1

程序:

#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <string>

using namespace std;

int main() 
{
	vector<int> arr;
	arr.push_back(1);
	arr.push_back(5);
	arr.push_back(12);
	arr.push_back(7);
	arr.push_back(6);
	arr.push_back(4);
	arr.push_back(7);

	//输出一下vector
	for (int i = 0; i < arr.size(); i++) {
		cout << arr[i] << " ";
	}
	cout << endl;

	vector<int>::iterator it;
	//使用find()对vector进行查找会返回一个迭代器
	it = find(arr.begin(), arr.end(), 7);


	cout << "---------分割线1----------" << endl;

	if (it != arr.end()) { //若返回的迭代器不指向end,说明查到了元素
		cout << "输出查到的元素:" << *it << endl;
		cout << "输出查到的元素的下标:" << it - arr.begin();
	}
	else
		cout << "查找失败";

	return 0;
}

结果:

1 5 12 7 6 4 7
---------分割线1----------
输出查到的元素:7
输出查到的元素的下标:3

我想要的是多个元素的下标,find函数只能输出查找到的第一个数的下标

2 例2

#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <string>

using namespace std;

int main() 
{
	//find() 函数作用于容器
	std::vector<int> myvector{ 10,20,30,40,50,30 };
	std::vector<int>::iterator it;//it是一个指针
	it = find(myvector.begin(), myvector.end(), 30);

	if (it != myvector.end())
	{
		cout << "查找成功:" << *it << endl;
		cout << "输出查到的元素的下标:" << it - myvector.begin() << endl;
	}
	else
		cout << "查找失败";
	int a = *it;
}

结果:

查找成功:30
输出查到的元素的下标:2

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
C++vector的find()函数是用来查找指定元素的方法。它可以在vector搜索指定元素,并返回一个迭代器指向该元素的位置。这个函数需要包含<algorithm>头文件才能使用使用find()函数的方法是首先定义一个迭代器,并将其初始化为find()函数的返回值。然后通过判断迭代器是否指向vector的末尾来确定是否找到了指定元素。如果找到了元素,可以通过迭代器获取该元素的值,以及通过迭代器与vector的起始迭代器相减来获取该元素在vector下标位置。 下面是一个示例代码,演示了如何使用vector的find()函数查找元素7的位置: ``` #include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int> arr; arr.push_back(1); arr.push_back(5); arr.push_back(12); arr.push_back(7); arr.push_back(6); arr.push_back(4); std::vector<int>::iterator it; it = std::find(arr.begin(), arr.end(), 7); if (it != arr.end()) { std::cout << "找到了元素:" << *it << std::endl; std::cout << "元素的下标位置:" << it - arr.begin() << std::endl; } else { std::cout << "未找到元素" << std::endl; } return 0; } ``` 输出结果: ``` 1 5 12 7 6 4 找到了元素:7 元素的下标位置:3 ``` 在上述示例代码,我们创建了一个vector arr,并使用push_back()函数向其添加了一些元素。然后,我们使用find()函数查找元素7的位置。如果找到了元素,输出该元素的值以及在vector下标位置。如果未找到元素,则输出未找到的信息。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值