char ベクトル arrと、その要素をnodeとして持つベクトル arrnodeがあります。コードは次のとおりです。
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 部分により、コードは正常に機能します。私は何が欠けていますか?前もって感謝し、質問のぼろぼろのタイトルを申し訳ありません:)