我有一个char 向量 arr和一个向量 arrnode,其元素为node。以下是代码:
struct node
{
int min;
int sum;
};
vector<char> arr;
char c;
for(int j = 0; j < n; j++)
{
cin >> c;
arr.push_back(c);
}
vector<node> arrnode;
for(int j = 0; j < n; j++)
{
/* if(arr[j]=='(')
arrnode.push_back({1,1});
else
arrnode.push_back({-1,-1});*/
arrnode.push_back( ( ( arr[j]=='(' ) ? {1,1} : {-1,-1} ) );
}
此代码为使用三元运算符的行提供以下错误。
prog.cpp:68:49: error: expected ‘:’ before ‘{’ token
prog.cpp:68:49: error: expected primary-expression before ‘{’ token
但是,if-else 部分(已注释)使代码工作正常。我错过了什么?在此先感谢,并对问题的破旧标题感到抱歉:)