C++ 统计vector<string>a容器中某个字符串出现的次数
时间: 2023-11-27 10:50:11 浏览: 93
可以使用STL中的`count`函数来统计某个字符串在vector中出现的次数。示例如下:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<std::string> a = {"hello", "world", "hello", "world", "welcome", "hello"};
std::string target = "hello";
int count = std::count(a.begin(), a.end(), target);
std::cout << "The count of " << target << " is " << count << std::endl;
return 0;
}
```
输出结果为:
```
The count of hello is 3
```
其中,`count`函数的第一个参数是容器的起始迭代器,第二个参数是容器的结束迭代器,第三个参数是要统计的字符串。`count`函数返回的是统计结果。
相关问题
C++ 删除vector<string>容器中重复的字符串
可以使用STL算法库中的`std::unique`函数来删除vector<string>容器中的重复元素。
具体步骤如下:
1. 首先对vector容器进行排序,以便后续去重操作。
2. 然后使用`std::unique`函数对容器进行去重操作,并返回去重后的尾部迭代器。
3. 最后使用vector容器的`erase`函数将去重后的元素从容器中删除。
下面是示例代码:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<string> vec{"hello", "world", "hello", "cpp", "world"};
sort(vec.begin(), vec.end()); // 对vector容器进行排序
auto end_unique = unique(vec.begin(), vec.end()); // 去重操作,并返回去重后的尾部迭代器
vec.erase(end_unique, vec.end()); // 删除重复的元素
for(auto& str : vec)
cout << str << " ";
cout << endl;
return 0;
}
```
输出结果为:`cpp hello world`
vector<string>s容器中找某个字符串是否存在
可以使用`std::find`算法来在`vector<string>`中查找某个字符串是否存在。示例代码如下:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<std::string> s = {"hello", "world", "how", "are", "you"};
std::string target = "world";
auto it = std::find(s.begin(), s.end(), target);
if (it != s.end()) {
std::cout << "Found " << target << " at index " << std::distance(s.begin(), it) << std::endl;
} else {
std::cout << target << " not found" << std::endl;
}
return 0;
}
```
输出结果为:
```
Found world at index 1
```
阅读全文