C++ 是否可以在C+中动态填充char*数组+;

C++ 是否可以在C+中动态填充char*数组+;,c++,dynamic,character-arrays,C++,Dynamic,Character Arrays,我有这样的情况 declare array of char*; switch(id) { case 1: add 4 words in array case 2: add 2 words in array default: add 1 word in array } use array here; 在C++中做这种事情是可能的。 我试过这样做,但对我无效。是的。要获得清晰、易懂、正确、异常安全的代码,请使用vector和string: std::vector<s

我有这样的情况

declare array of char*;
switch(id)
{
case 1:
    add 4 words in array
case 2:
    add 2 words in array
default:
    add 1 word in array
}

use array here;
在C++中做这种事情是可能的。
我试过这样做,但对我无效。

是的。要获得清晰、易懂、正确、异常安全的代码,请使用
vector
string

std::vector<std::string> v;

switch (id)
{
case 1:
    v.push_back("a");
    v.push_back("b");
    v.push_back("c");
    v.push_back("d");
    break;

case 2:
    v.push_back("a");
    v.push_back("b");
    break;

default:
    v.push_back("a");
}

// Use the strings in v; for example, using a C++11 lambda expression:
std::for_each(begin(v), end(v), [](std::string const& s)
{
    std::cout << s << std::endl;
});

// Or using a for loop:
for (std::vector<std::string>::const_iterator it(v.begin()); it != v.end(); ++it)
{
    std::cout << *it << std::endl;
}
std::vector v;
开关(id)
{
案例1:
v、 推回(“a”);
v、 推回(“b”);
v、 推回(“c”);
v、 推回(“d”);
打破
案例2:
v、 推回(“a”);
v、 推回(“b”);
打破
违约:
v、 推回(“a”);
}
//使用v中的字符串;例如,使用C++11 lambda表达式:
std::for_每个(开始(v)、结束(v),[](std::字符串常量(&s)
{

std::cout是。要获得干净、易懂、正确、异常安全的代码,请使用
向量
字符串

std::vector<std::string> v;

switch (id)
{
case 1:
    v.push_back("a");
    v.push_back("b");
    v.push_back("c");
    v.push_back("d");
    break;

case 2:
    v.push_back("a");
    v.push_back("b");
    break;

default:
    v.push_back("a");
}

// Use the strings in v; for example, using a C++11 lambda expression:
std::for_each(begin(v), end(v), [](std::string const& s)
{
    std::cout << s << std::endl;
});

// Or using a for loop:
for (std::vector<std::string>::const_iterator it(v.begin()); it != v.end(); ++it)
{
    std::cout << *it << std::endl;
}
std::vector v;
开关(id)
{
案例1:
v、 推回(“a”);
v、 推回(“b”);
v、 推回(“c”);
v、 推回(“d”);
打破
案例2:
v、 推回(“a”);
v、 推回(“b”);
打破
违约:
v、 推回(“a”);
}
//使用v中的字符串;例如,使用C++11 lambda表达式:
std::for_每个(开始(v)、结束(v),[](std::字符串常量(&s)
{
标准::cout