qfedu-cpp-level/day9/homework/h6.cpp

46 lines
1.4 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 【场景】向量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;
}