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;
|
|||
|
}
|