【发布时间】:2021-09-30 09:53:24
【问题描述】:
我正在尝试将字符串的某些特定字符存储在向量中。但是,当我想推回字符时,值有问题,我不知道为什么。不幸的是,浏览 cpp 参考页面并没有帮助我。有人可以帮忙吗? 代码如下:
int main()
{
std::string str1 = "xxxGGxx$xxxGxTxGx";
std::vector<std::string> vec;
std::vector<std::string>::iterator it;
for(auto &ch:str1)
{
if(ch == 'G' || ch == '$' || ch == 'T')
{
vec.push_back(ch); //Problem: ch not accepted
}
}
for(it = vec.begin(); it!=vec.end(); it++)
{
std::cout << *it;
}
}
【问题讨论】:
-
ch 是一个字符,你的向量包含字符串,所以你必须使用适当的构造函数来构造字符串,没有为这种情况提供默认的构造函数。
-
ch的类型适合您吗?是std::string还是char?vec.push_back期待什么? -
为了增加您的问题的价值,您应该在尝试编译代码时包含您收到的错误消息。