我希望使用std::strings 数组初始化一个向量.
我有以下解决方案,但想知道是否有更优雅的方式这样做?
std::string str[] = { "one", "two", "three", "four" };
vector< std::string > vec;
vec = vector< std::string >( str, str + ( sizeof ( str ) / sizeof ( std::string ) ) );
Run Code Online (Sandbox Code Playgroud)
当然,我可以通过定义大小来使其更具可读性,如下所示:
int size = ( sizeof ( str ) / sizeof ( std::string ) );
Run Code Online (Sandbox Code Playgroud)
并用以下代码替换向量初始化:
vec = vector< std::string >( str, str + size );
Run Code Online (Sandbox Code Playgroud)
但这仍然感觉有点"不优雅".
那么中间步骤是不需要的:
std::string str[] = { "one", "two", "three", "four" };
vector< std::string > vec( str, str + ( sizeof ( str ) / sizeof ( std::string ) ) );
Run Code Online (Sandbox Code Playgroud)
在 C++11 中,您可以使用初始化列表构造函数将大括号初始化放入构造函数中。