如何将vector<string>中的某一个转化为string

如果直接写str=vec[n]会报错conversionfrom‘std::vector<std::basic_string<char>>’tonon-scalartyp... 如果直接写str=vec[n]会报错
conversion from ‘std::vector<std::basic_string<char> >’ to non-scalar type ‘std::string {aka std::basic_string<char>}’ requested
展开
 我来答
yanglei5658
推荐于2017-12-16 · TA获得超过4756个赞
知道大有可为答主
回答量:835
采纳率:100%
帮助的人:520万
展开全部

你确定你创建vector的时候,参数类型是string,我这边试验没有问题。

程序主体为:

void testprogram()
{
    vector<string> svec;
    svec.push_back("Hello");
    svec.push_back("Hi");
    svec.push_back("How are you");
    svec.push_back("I am fine");
    svec.push_back("Thank you");
    for (int i = 0; i < svec.size(); i++)
    cout << svec[i] << endl;
    string str_out;
    str_out = svec[3];
    cout << "str_out is "<<str_out << endl;
}

结果为:

追问
我用的vector 是指针
vector *a;
a=new vector;
a->push_back("abc");
string c;
c=a[0];
cout<<c;
然后 c=a[0];这一行就报错了
追答

这一块用指针非常诡异,不知道是什么意思。

你的a是vector<string> *类型,而a[0]是vector<string>类型。

要引用第一个元素,得a[0][0]

程序为:

vector<string> *a;
a = new vector < string > ;
a->push_back("abc");
string c;
c = a[0][0];
cout << c;

结果为:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式