C++算法 查找一个字符串或整数或小数中任意一个元素的索引(位置)
以下这个例子是查找若干个小数中小数点的索引。
#include<iostream>
#include<vector>
#include <algorithm>
using namespace std;
int main()
{int n = 0;cin >> n;//由于精度的限制,可以选择用字符串代替小数vector<string> arr(n);//每一个小数的小数点位置都存在一个迭代器数组中vector<string::iterator> it(n);for (int i = 0; i < n; i++){cin >> arr[i];it[i] = find(arr[i].begin(), arr[i].end(), '.');}for (int i = 0; i < n; i++){
// std::distance是一个算法函数,用于计算两个迭代器之间的距离。
// 在这里,它计算的是字符串arr[i]的起始迭代器arr[i].begin()到存储了查找结果的迭代器it[i]之间的距离。
// 这个距离实际上就是在字符串中找到的目标字符(如果找到的话)的索引位置。cout << distance(arr[i].begin(), it[i]) << endl;}return 0;
}
这个算法的高明之处在于不仅语言量很少,而且无论输入的是什么,有多长,都可以查找到其中的特定元素。