我有以下代码:
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;
}
我不知道,它说我无法将矢量转换为char *。那我问,vChar是什么类型的?它与int tab []中的char *相同(我的意思是tab是int *)?
答案 0 :(得分:2)
如果你想传递一个向量,给你的函数一个参数,它是一个向量或对向量的引用:
void func(const vector<const char*>& vChar); // const ref if you won't modify it
请注意,不应将字符串文字绑定到非const引用(这在C ++ 11中已弃用),因此如果需要,请将向量设为vector<const char*>
或vector<string>
它拥有数据。