46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
// 【场景】向量vector查找
|
||
// 编写一个函数 findElement,接受一个整数向量和一个目标值作为参数,并返回目标值在向量中的索引。
|
||
// 如果目标值不存在于向量中,则返回 -1。
|
||
#include <iostream>
|
||
#include <vector>
|
||
#include <string>
|
||
|
||
using namespace std;
|
||
|
||
int findElement(vector<int> &v, const int &item)
|
||
{
|
||
int index = 0;
|
||
vector<int>::iterator it = v.begin();
|
||
while (it != v.end())
|
||
{
|
||
if (*it == item) // 如果找到了
|
||
return index; // 返回索引
|
||
index++; // 索引加一
|
||
it++; // 迭代器指向下一个元素
|
||
}
|
||
return -1;
|
||
}
|
||
|
||
string print(int item)
|
||
{
|
||
if (item == -1)
|
||
return "目标不存在";
|
||
else
|
||
{
|
||
// to_string() 函数可以将整数转换为字符串
|
||
// 需要 #include <string> 头文件
|
||
// 需要 c++11 标准,编译时加上 -std=c++11
|
||
string s = to_string(item);
|
||
return s;
|
||
}
|
||
}
|
||
|
||
int main()
|
||
{
|
||
int arr[] = {1, 2, 3, 4, 5, 4, 6, 7, 8, 9, 10}; // 定义数组
|
||
vector<int> v1(arr, arr + sizeof(arr) / sizeof(arr[0])); // 将数组转换为向量
|
||
cout << "5 在目标值向量中的索引为: " << print(findElement(v1, 5)) << endl; // 4
|
||
cout << "11 在目标值向量中的索引为: " << print(findElement(v1, 11)) << endl; // -1
|
||
return 0;
|
||
}
|