C++ 将字符串数组传递给向量C++;

C++ 将字符串数组传递给向量C++;,c++,arrays,vector,C++,Arrays,Vector,我尝试将字符串数组推送到向量,如下所示: string []URL = {"www.facebook.com","www.orkut.com","www.yahoo.com"}; Int32 result = URL.Length; SetPolicyURL( URL,result); SetPolicyURL( char * URLpolicy[], __int32 noURL) { __int32 i = 0; while ( i< noURL) { char

我尝试将字符串数组推送到向量,如下所示:

 string []URL = {"www.facebook.com","www.orkut.com","www.yahoo.com"};
 Int32 result = URL.Length;
 SetPolicyURL( URL,result);

 SetPolicyURL( char * URLpolicy[], __int32 noURL)
 {
__int32 i  = 0;

while ( i< noURL)
{
    char buf[2512] = {0};

    URLvector.push_back(URLpolicy[i]);
    sprintf( buf," noURL = %d URLpolicy[%d] = %s  URLvector[%d] = %s", noURL,  i,URLpolicy[i] ,i, URLvector.at(i).c_str());


    MessageBoxA(NULL, buf , 0, MB_ICONERROR);

    ++i;
}
string[]URL={“www.facebook.com”、“www.orkut.com”、“www.yahoo.com”};
Int32 result=URL.Length;
SetPolicyURL(URL,结果);
SetPolicyURL(char*URLpolicy[],uu int32 noURL)
{
__int32i=0;
而(i
}


但是当我试图显示向量的元素时,我只得到了第一个数组元素两次,数组的第二个元素在位置3。我不明白为什么会发生这种情况。

下面的代码不需要循环就可以实现您想要的功能。C++允许插入数组,就像它是向量的迭代器。这种方法不太复杂,而且容易出错

URLvector.insert(URLpolicy, URLpolicy+noURL );
也改变

SetPolicyURL( char * URLpolicy[], __int32 noURL);

char*[]
string[]
不同,这是导致原始问题的原因

URLvector.assign(URLpolicy,URLpolicy+noURL) ;

可用于将字符串数组传递给向量。

URLvector.insert(URL,URL+noURL);将向量插入向量我想将数组插入向量哦,我明白了,我没有使用本地版本
URLpolicy
。现在它应该将数组
URLpolicy
插入向量
URLvector
。是的,我想将数组元素插入向量
URLvector.assign(URLpolicy,URLpolicy+noURL) ;