-1
次のコードエラー:テンプレート引数1は、ベクトル
ifstream read("input-1.txt");
int n,u;read >> n;
vector<list<int>> adj_list (n+1);
string delimiter = "->",vertex,list;
size_t pos = 0;int count;
string::size_type sz;
for (int i=0;i<n;i++){
read >> list;
count = 0;
while((pos = list.find(delimiter))!= string::npos){
vertex = list.substr(0,pos);
if (count!=0){
adj_list[i].push_back(stoi (vertex.substr(1,vertex.length()),&sz));
}
list.erase(0,pos+delimiter.length());
count++;
}
}
read >> vertex;
u = stoi (vertex.substr(1,vertex.length()),&sz);
vector<list<int>>::iterator it1 = adj_list.begin();
while(it1!=adj_list.end()){
list<int> new_list = *it1;
list<int>::iterator it2 = new_list.begin();
while(it2!=new_list.end()){
cout << *it2 <<" ";
it2++;
}
cout << endl;
it1++;
}
cout << u << n << "u" << "n";
のためのイテレータを宣言しながら、無効である
even.cpp:37:26: error: template argument 1 is invalid
vector<typename list<int>>::iterator it1 = adj_list.begin();
^
even.cpp:37:26: error: template argument 2 is invalid
even.cpp:37:39: error: qualified-id in declaration before ‘it1’
vector<typename list<int>>::iterator it1 = adj_list.begin();
^
even.cpp:38:8: error: ‘it1’ was not declared in this scope
while(it1!=adj_list.end()){
^
even.cpp:39:8: error: expected primary-expression before ‘int’
list<int> new_list = *it1;
^
even.cpp:40:8: error: expected primary-expression before ‘int’
list<int>::iterator it2 = new_list.begin();
^
even.cpp:41:9: error: ‘it2’ was not declared in this scope
while(it2!=new_list.end()){
^
even.cpp:41:14: error: ‘new_list’ was not declared in this scope
while(it2!=new_list.end()){
は、ベクターがint型のリストであると正しく宣言されている次のエラーになります。しかし、イテレータが宣言されると、テンプレート引数についてのエラーが返されます。 私はちょうどintのユーザー定義クラスではなく、私は理解できないエラーを使用しています。誰もこれを整理することはできますか?
エラーがコードと一致しません。そこに余分な 'typename'があります。 – chris