No member named 'find' in 'std::vector<std::basic_string<char>>'
时间: 2023-10-15 19:02:11 浏览: 402
C++11中std::declval的实现机制浅析
在 C++ 中,vector 容器内部存储的元素类型为 std::string 类型时,也可以使用 find() 函数进行查找。以下是一个示例代码:
```
#include <iostream>
#include <vector>
#include <string>
int main() {
std::vector<std::string> vec = {"Hello", "World", "C++"};
// 查找字符串 "World"
auto it = std::find(vec.begin(), vec.end(), "World");
if (it != vec.end()) {
std::cout << "字符串 \"World\" 存在于 vec 中,位置为 " << std::distance(vec.begin(), it) << std::endl;
} else {
std::cout << "字符串 \"World\" 不存在于 vec 中" << std::endl;
}
// 查找字符串 "Python"
it = std::find(vec.begin(), vec.end(), "Python");
if (it != vec.end()) {
std::cout << "字符串 \"Python\" 存在于 vec 中,位置为 " << std::distance(vec.begin(), it) << std::endl;
} else {
std::cout << "字符串 \"Python\" 不存在于 vec 中" << std::endl;
}
return 0;
}
```
输出结果为:
```
字符串 "World" 存在于 vec 中,位置为 1
字符串 "Python" 不存在于 vec 中
```
需要注意的是,这里使用了 algorithm 头文件中的 std::find() 函数,而不是 vector 容器自带的成员函数。因为 vector 容器本身没有提供 find() 函数,但是 algorithm 头文件中提供了通用的查找算法,可以用于所有容器类型的查找操作。
阅读全文