面试题答案
一键面试#include <concepts>
#include <iostream>
#include <vector>
template <typename T1, typename T2>
concept RandomAccessContainerWithCompatibleElement =
std::ranges::random_access_range<T1> &&
std::convertible_to<T2, std::ranges::range_value_t<T1>>;
template <RandomAccessContainerWithCompatibleElement T1, typename T2>
int findIndex(const T1& container, const T2& target) {
for (size_t i = 0; i < container.size(); ++i) {
if (container[i] == target) {
return static_cast<int>(i);
}
}
return -1;
}
你可以这样使用这个函数模板:
int main() {
std::vector<int> vec = {10, 20, 30, 40};
std::cout << findIndex(vec, 30) << std::endl; // 输出2
std::cout << findIndex(vec, 50) << std::endl; // 输出-1
return 0;
}