我正在执行以下操作:
string strarr[]={"","",""};
if (a==b)
{
strarr={"a","b","c"};
}
else
{
strarr={"d","e","f"};
}
我在重新分配给 strarr 的行上遇到了表达式语法错误。
任何想法为什么?
我可以做些什么来初始化而不是:
string strarr[]={"","",""};
我正在使用 Borland C++Builder 6。
我正在执行以下操作:
string strarr[]={"","",""};
if (a==b)
{
strarr={"a","b","c"};
}
else
{
strarr={"d","e","f"};
}
我在重新分配给 strarr 的行上遇到了表达式语法错误。
任何想法为什么?
我可以做些什么来初始化而不是:
string strarr[]={"","",""};
我正在使用 Borland C++Builder 6。
据我所知,大括号语法仅在初始化数组时用于每个 C++ 编译器。因此,您不能将其用于重新分配。您可以改为使用循环或逐元素赋值。
如果您要分配的值的数量是恒定的并且它们的值是恒定的,则可以将它们放在一个常量数组中并遍历它以填充您的 starr[] 数组。
我在重新分配给 strarr 的行上遇到了表达式语法错误
任何想法为什么?
初始化后,您无法重新分配数组本身。您只能重新分配其元素,例如:
string strarr[]={"","",""};
if (a==b)
{
strarr[0] = "a";
strarr[1] = "b";
strarr[2] = "c";
}
else
{
strarr[0] = "d";
strarr[1] = "e";
strarr[2] = "f";
}
我可以做些什么来初始化而不是:
字符串 strarr[]={"","",""};
std::string
有一个默认构造函数将其初始化为空值,因此根本不需要显式初始化它""
。删除初始值,并指定数组的大小。让编译器为您调用构造函数:
string strarr[3];