📅  最后修改于: 2023-12-03 15:09:07.134000             🧑  作者: Mango
在C++中,将字符串推送的每个元素转换为集合(如vector、set、map等)是非常常见的需求,本文将介绍如何实现该功能。
首先,我们需要将字符串拆分为单个字符,这个过程可以使用C++中的STL库中的字符串流(stringstream)来完成,具体代码如下:
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;
vector<char> splitString(const string& str) {
vector<char> chars;
stringstream ss(str);
char c;
while (ss >> c) {
chars.push_back(c);
}
return chars;
}
int main() {
string str = "hello world";
vector<char> chars = splitString(str);
for (char c : chars) {
cout << c << endl;
}
return 0;
}
上述代码中,我们创建了一个名为splitString的函数,它接收一个字符串参数str,并使用字符串流(stringstream)将其拆分为单个字符,然后将单个字符存储在vector
接下来,我们将使用上一步拆分出的单个字符来创建一个集合。具体来说,我们可以使用vector、set或map集合来存储字符,这取决于我们需要的功能。例如,如果我们只需要存储不重复的字符集合,则使用set;如果我们需要存储每个字符出现的次数,则使用map。下面是一些示例代码:
string str = "hello world";
vector<char> chars = splitString(str);
vector<char> v;
for (char c : chars) {
if (c != ' ') {
v.push_back(c);
}
}
for (char c : v) {
cout << c << endl;
}
上述代码中,我们使用splitString函数将字符串拆分为单个字符,并使用vector
string str = "hello world";
vector<char> chars = splitString(str);
set<char> s;
for (char c : chars) {
if (c != ' ') {
s.insert(c);
}
}
for (char c : s) {
cout << c << endl;
}
上述代码中,我们使用splitString函数将字符串拆分为单个字符,并使用set
string str = "hello world";
vector<char> chars = splitString(str);
map<char, int> m;
for (char c : chars) {
if (c != ' ') {
m[c]++;
}
}
for (auto& p : m) {
cout << p.first << " occurs " << p.second << " time(s)." << endl;
}
上述代码中,我们使用splitString函数将字符串拆分为单个字符,并使用map<char, int>存储这些字符及其出现的次数。然后,我们遍历vector
本文介绍了如何将字符串推送的每个元素转换为C++中的集合。具体来说,我们首先使用字符串流(stringstream)将字符串拆分为单个字符,然后使用vector、set或map等集合存储这些字符,并按要求进行操作。希望本文能够帮助C++程序员更好地处理字符串集合。