如何将<char>
数组插入到<char*>
向量中,如下所示:
std::vector<char> ch;
ch.push_back('H');
ch.push_back('e');
ch.push_back('l');
ch.push_back('l');
ch.push_back('o');
std::vector<char*> vec;
vec.push_back(ch);
但是错误地说:push_back() cannot convert parameter 1 from....
那么有没有办法将ch[]
值加载到vec[0]
中,并仍然使用我的一个函数来搜索向量中的内容,例如:
vecf[]
包含文件内容,我可以在vecf[0]vecf[1]...
中搜索类似内容,例如从"Hello"
搜索文字"Hi, Hello..."
?
据我所知,我的问题不清楚,所以这里有更清晰的版本: 可以这样做:
char string[]="Hello World";
std::vector<char*> vec;
vec.push_back(string);
cout<<vec[0];
然后如果一个字符串的类型是std :: vector,那么:
std::vector<char> string;
std::vector<char*> vec;
how would i do like this?
vec.push_back(string);
或类似的东西将字符串的内容输入到vec中,而ch和vec不在真实的项目中,我使用术语ch和vec只是一个例子,如何做到这一点,在我的项目中有一个char矢量变量ID,类似于这个ID =&#34; ID2&#34;但是在向量中,ID的值是从文件加载的,还有另一个标签,其中包含引用ID,我将与ID [0] / ID [1]进行比较,直到一个匹配,如果一个匹配,我将得到它在数组上的位置,然后是另一个向量变量(int),其中包含文件中数组的所有节点位置,我将使用这个SPos [ArrayPos]来获取文件中节点的位置,希望这个足够清楚。 ..
答案 0 :(得分:-1)
std::vector<char*> vec;
这表示vec是char *的载体。
但是你试图插入一个矢量。这里没有自动转换。
假设您确实不想使用字符串类型,则需要声明
std::vector<std::vector<char> > vec;
vec.push_back(ch);
请注意,如果你想要存储指向vector的指针,你必须在堆上分配ch。