2
std::array
のstd::pair
をstd::initializer_list
で初期化します。std :: arrayを初期化するときに、std :: initializer_listでstd :: pairを初期化することはできません。
pair<int, int> p = {3,4};//ok
array<pair<char,char>, 3> p = { make_pair('{','}'), make_pair('[',']'), make_pair('(',')') };//ok
array<pair<char,char>, 3> p = { {'{','}'}, {'[',']'}, {'(',')'} };//not ok
なぜ私の3番目のオプションは機能しませんか?またこれは、同様に、正常に動作します:
array<pair<char,char>, 3> p = {{ {'{','}'}, {'[',']'}, {'(',')'} }};
^ ^
:あなたがかっこの余分なセットを必要とするので
ブレース初期化子リストでstd::array
を初期化
vector<pair<char, char>> brackets = { {'{','}'}, {'[',']'}, {'(',')'} };