我正在创建变量
std::string str1,str2,str3,str4 = "Default";
但是变量没有默认值。如何为以这种方式创建的变量赋值
str4
将具有您正在寻找的价值。你只是没有初始化其他人。利用:
std::string str1 = "Default", str2 = "Default", str3 = "Default", str4 = "Default";
或者,可能更好:
std::string str1 = "Default";
std::string str2 = "Default";
std::string str3 = "Default";
std::string str4 = "Default";
如果您担心输入太多内容,可以使用赋值而不是初始化:
std::string str1, str2, str3, str4;
str1 = str2 = str3 = str4 = "Default";
但这有不同的语义,而且(恕我直言)有点古怪。
通常,当您的变量名称中包含数字时,数组会更适合。std::fill_n
这也为您提供了使用的额外好处
#include <algorithm>
std::string str[4];
std::fill_n( str, 4, "Default" ); // from link provided by Smac89
// str[0], str[1], str[2], str[3] all set to "Default"
std::string str1,str2,str3,str4;
str1 = str2 = str3 = str4 = "Default";
怎么上链?
std::string str1, str2, str3, str4;
str1 = str2 = str3 = str4 = "Default";
std::string str1 = "Default", str2 = "Default", str3 = "Default", str4 = "Default";
分别初始化每个变量,最好每行声明一个变量。
使用一些 C++11 特性的方法:
#include <iostream>
#include <string>
#include <algorithm> //for_each
#include <iterator> //begin, end
using std::string;
int main() {
string strs[4];
std::for_each (std::begin(strs), std::end(strs), [](string &str) {
str = "Default";
});
for (string str: strs)
std::cout << str << "\n";
return 0;
}
这段代码最重要的方面之一是 lambda 函数。我刚刚读到它们,不得不尝试一下。如果您有兴趣了解更多信息,这是一个链接