C ++ Назначить символ ** массиву строк - PullRequest
2 голосов
/ 14 октября 2019

Я знаю, что вы можете назначить массив символов для строки:

#include <string>
using std::string;

char foo[] = "foo";
string str = foo;

Но как вы назначаете массив массивов символов (char **) для массива строк?

1 Ответ

2 голосов
/ 14 октября 2019

Вот вы

#include <iostream>
#include <vector>
#include <iterator>

int main() 
{
    const char * a[] = { "Hello", "World" };

    std::vector<std::string> v( std::begin( a ), std::end( a ) );

    for ( const auto &s : v ) std::cout << s << ' ';
    std::cout << '\n';

    return 0;
}

Вывод программы:

Hello World 

Или

#include <iostream>
#include <vector>

int main() 
{
    const size_t N = 2;
    const char ** a = new const char * [N] { "Hello", "World" };

    std::vector<std::string> v( a, a + N );

    for ( const auto &s : v ) std::cout << s << ' ';
    std::cout << '\n';

    delete [] a;

    return 0;
}
...