No member named 'find' in 'std::vector<std::basic_string<char>>'
时间: 2023-10-15 12:02:11 浏览: 432
出现这个错误是因为在对`std::vector<std::basic_string<char>>`类型的向量调用`find`函数时,编译器无法找到该函数的定义。`std::vector`并没有提供`find`函数的定义,但是可以使用`std::find`算法来在向量中查找元素。
下面是一个示例代码,演示如何在`std::vector<std::string>`中查找一个字符串元素:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
int main() {
std::vector<std::string> vec = {"hello", "world", "how", "are", "you"};
std::string target = "how";
auto it = std::find(vec.begin(), vec.end(), target);
if (it != vec.end()) {
std::cout << "Found " << target << " at index " << std::distance(vec.begin(), it) << std::endl;
} else {
std::cout << "Element " << target << " not found in vector" << std::endl;
}
return 0;
}
```
在上面的代码中,我们使用了`std::find`算法来在向量`vec`中查找字符串`"how"`。如果找到了该元素,将输出它的索引;否则,将输出一个错误信息。
希望这可以解决你的问题。
阅读全文