gpt4 book ai didi

c++ - 在 C++11 之前的版本中将字符串列表填充到 vector 中

转载 作者:太空狗 更新时间:2023-10-29 19:48:43 25 4
gpt4 key购买 nike

首先,如果这是一个令人眼花缭乱的简单明了的问题,我想道歉。我知道这对有专业知识的人来说相当容易。 C++11 允许以列表形式初始化 vector :

std::vector<std::string> v = {
"this is a",
"list of strings",
"which are going",
"to be stored",
"in a vector"};

但这在旧版本中不可用。我一直在努力想出填充字符串 vector 的最佳方法,到目前为止,我唯一能真正想到的是:

std::string s1("this is a");
std::string s2("list of strings");
std::string s3("which are going");
std::string s4("to be stored");
std::string s5("in a vector");

std::vector<std::string> v;
v.push_back(s1);
v.push_back(s2);
v.push_back(s3);
v.push_back(s4);
v.push_back(s5);

它有效,但写起来有点麻烦,我相信有更好的方法。

最佳答案

规范的方法是在合适的 header 中定义 begin()end() 函数,并使用如下内容:

char const* array[] = {
"this is a",
"list of strings",
"which are going",
"to be stored",
"in a vector"
};
std::vector<std::string> vec(begin(array), end(array));

函数 begin()end() 定义如下:

template <typename T, int Size>
T* begin(T (&array)[Size]) {
return array;
}
template <typename T, int Size>
T* end(T (&array)[Size]) {
return array + Size;
}

关于c++ - 在 C++11 之前的版本中将字符串列表填充到 vector 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19104838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com