下記のコードを実行したいのですが、vector<pair<T, S>>が宣言できないというエラーがでます。
C++
1#include<iostream> 2#include<vector> 3#include<list> 4 5template<typename T, typename S> 6struct HashMap { 7 int n = 1; 8 int m = 0; 9 std::vector<std::pair<T, S>> arr{n, std::list<std::pair<T, S>>()}; 10 11}; 12 13int main() { 14 HashMap<int, int> map; 15} 16
次のようなエラーが出ます。C++は初心者で全く原因が分からないのですが、ご助言頂けないでしょうか。
prog.cc:
1prog.cc:14:21: required from here 2prog.cc:9:46: error: could not convert '{((HashMap<int, int>*)this)->HashMap<int, int>::n, std::__cxx11::list<std::pair<int, int>, std::allocator<std::pair<int, int> > >()}' from '<brace-enclosed initializer list>' to 'std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >' 3 9 | std::vector<std::pair<T, S>> arr{n, std::list<std::pair<T, S>>()}; 4 | ^~~ 5 | | 6 | <brace-enclosed initializer list> 71
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/29 12:47