相关文章推荐
如果直接写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

你确定你创建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;

结果为:

 
推荐文章