我正在创建变量
std::string str1,str2,str3,str4 = "Default";
但是变量没有Default值。如何为以这种方式创建的变量赋值
答案 0 :(得分:9)
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";
但是这有不同的语义,并且(恕我直言)有点迟。
答案 1 :(得分:3)
通常,当您的变量名称中包含数字时,数组将更适合。这为您提供了使用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"
答案 2 :(得分:2)
链接怎么样?
std::string str1, str2, str3, str4;
str1 = str2 = str3 = str4 = "Default";
答案 3 :(得分:2)
std::string str1,str2,str3,str4;
str1 = str2 = str3 = str4 = "Default";
答案 4 :(得分:1)
std::string str1 = "Default", str2 = "Default", str3 = "Default", str4 = "Default";
分别初始化每个变量,最好每行声明一个变量。
答案 5 :(得分:-1)
使用某些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函数。我刚看过他们,不得不尝试一下。如果你是interested in learning more
,这是一个链接