在C ++中使用向量?

时间:2014-12-07 06:22:14

标签: c++ vector

如何将<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]来获取文件中节点的位置,希望这个足够清楚。 ..

1 个答案:

答案 0 :(得分:-1)

std::vector<char*> vec;

这表示vec是char *的载体。

但是你试图插入一个矢量。这里没有自动转换。

假设您确实不想使用字符串类型,则需要声明

std::vector<std::vector<char> > vec;
vec.push_back(ch);

请注意,如果你想要存储指向vector的指针,你必须在堆上分配ch。