如何获得char ** std :: vector <char>&amp;出来吗?

时间:2018-03-08 14:51:33

标签: c++ pointers

我有这个载体

std::vector<char> myvector;

我得到指向第一个元素的指针

char* pBegin = &myvector[0];

我需要传递给函数char **,所以我这样做

some_function(pConvert, &pBegin,

是否可以避免使用pBegin?只需使用myvector

1 个答案:

答案 0 :(得分:-1)

如果你想使用char **,你可以更改像std::vector<char*> myvector这样的矢量定义,你的实现可能如下所示:

bool some_function(char* other, const std::vector<char*>& vec)
{
    for (char* str : vec)
    {
        if (strcmp(str, other) == 0) return true;
    }
    return false;
}

int main()
{
    std::vector<char*> myvector;

    char  *ch1 = new char[6];
    strcpy(ch1, "Hello");

    myvector.push_back(ch1);

    char  *ch2 = "World";
    myvector.push_back(ch2);

    char** str1 = &myvector[0];
    char** str2 = &myvector[1];

    cout << (*str1) << endl;
    cout << (*str2) << endl;

    cout << (some_function("Hello",myvector) ? "Found" : " Not found") <<endl;
    delete ch1;
}