如何解决有人可以向我解释编译器我正在编译C ++程序中提到的以下错误主要是与向量有关的错误吗?
我正在尝试解决的问题-
“您将获得一棵包含N个节点的根树。每个节点都包含一个小写字母。 您需要回答类型为u,c的Q查询,其中u是整数,c是小写字母。包含c的节点u的子树中的节点数被视为所有查询的答案。 “
#include<bits/stdc++.h>
using namespace std;
void count(vector<vector<int>> *v,int par,string s,int arr[][26])
{
if(v[par].size()==0)
{
arr[par][s[par-1]-'a']++;
return;
}
arr[par][s[par-1]-'a']++;
for(int i=0;i<v[par].size();i++)
{
count(&v,v[par][i],s,&arr);
for(int j=0;j<26;j++)
{
arr[par][j]=arr[v[par][i]][j]+arr[par][j];
}
}
}
int main()
{
int n,q,par,child,arr[100010][26]={};
char alphabet;
cin>>n>>q;
string s;
cin>>s;
vector<vector<int>> v={};
while(n--)
{
cin>>par>>child;
v[par].push_back(child);
}
count(&v,1,&arr);
while(q--)
{
cin>>par>>alphabet;
cout<<arr[par][alphabet-'a']<<"\n";
}
}
现在是错误
In function ‘void count(std::vector<std::vector<int> >*,int,std::__cxx11::string,int (*)[26])’:
13:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
15:28: error: no matching function for call to ‘count(std::vector<std::vector<int> >**,__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> > >::value_type&,std::__cxx11::string&,int (**)[26])’
4:6: note: candidate: void count(std::vector<std::vector<int> >*,int (*)[26])
4:6: note: no known conversion for argument 1 from ‘std::vector<std::vector<int> >**’ to ‘std::vector<std::vector<int> >*’
62:0,64,1:
3959:5: note: candidate: template<class _IIter,class _Tp> typename std::iterator_traits<_Iterator>::difference_type std::count(_IIter,_IIter,const _Tp&)
3959:5: note: template argument deduction/substitution failed:
15:28: note: deduced conflicting types for parameter ‘_IIter’ (‘std::vector<std::vector<int> >**’ and ‘std::vector<int>’)
18:19: error: no match for ‘operator[]’ (operand types are ‘int (*)[26]’ and ‘__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> > >::value_type {aka std::vector<int>}’)
In function ‘int main()’:
35:19: error: no matching function for call to ‘count(std::vector<std::vector<int> >*,int (*)[100010][26])’
4:6: note: candidate: void count(std::vector<std::vector<int> >*,int (*)[26])
4:6: note: no known conversion for argument 4 from ‘int (*)[100010][26]’ to ‘int (*)[26]’
62:0,const _Tp&)
3959:5: note: template argument deduction/substitution failed:
35:19: note: deduced conflicting types for parameter ‘_IIter’ (‘std::vector<std::vector<int> >*’ and ‘int’)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。