C++ 如何将向量转换为函数

C++ 如何将向量转换为函数,c++,vector,parameters,variable-assignment,C++,Vector,Parameters,Variable Assignment,我有以下代码: void func(char *vChar); int main(void){ std::vector<char*> vChar; vChar.push_back("Bla Bla Bla"); func(vChar); return 0; } void func(char *vChar){ std::cout << vChar->size; } void func(char*vChar); 内部主(空

我有以下代码:

void func(char *vChar);

int main(void){
    std::vector<char*> vChar;
    vChar.push_back("Bla Bla Bla");

    func(vChar);
    return 0;
}

void func(char *vChar){
    std::cout << vChar->size;
}
void func(char*vChar);
内部主(空){
std::向量vChar;
vChar.向后推(“布拉布拉布拉布拉”);
func(vChar);
返回0;
}
void func(字符*vChar){
标准:cout大小;
}

我不知道,它说我不能把向量转换成字符*。那么我问,vChar是什么类型的?它是否与int tab[]中的char*相同(我的意思是tab是int*)?

如果要传递向量,请为函数提供一个向量或向量引用的参数:

void func(const vector<const char*>& vChar); // const ref if you won't modify it
void func(常量向量&vChar);//const ref,如果您不修改它

请注意,字符串文字不应绑定到非常量引用(这在C++11中是不推荐的,因为有充分的理由),因此请将向量设置为
vector
,或者
vector
,如果希望它拥有数据。

在代码中,“func”接受char*vChar-它需要是vector&vChar为什么在C++11中不推荐它?为什么我至少应该使用const char*?@babbado它不仅不被推荐,而且已经被弃用了。你不能这么做。一开始你根本就不该这么做。问题是字符串文本存储在内存的只读部分。您应该不能修改其中的字符。然而,一个
char*
会让你失望,并带来可怕的后果。