次のコードを実行したところerror: expected ‘;’ before ‘>’ tokeというエラーが出ます。
(エラーの詳細は末尾)
;は抜けていないと思うので、なぜ;が抜けているというエラーが出ているのか分かりません。
エラーの原因のわかる方いらっしゃったらご教示ください。
C++
1#include <bits/stdc++.h> 2 3const long long mo=1000000000+7; 4 5using mat=std::vector<std::vector<long long >>>; 6 7mat mul(mat a,mat b){ 8 mat ret(50,std::vector<long long>(50)); 9 for(int i=0;i<50;++i){ 10 for(int j=0;j<50;++j){ 11 for(int k=0;k<50;++k){ 12 ret[i][j]+=a[i][k]*b[k][j]%mo; 13 ret[i][j]%=mo; 14 } 15 } 16 } 17 return ret; 18} 19 20int main(){ 21 int N; 22 long long K; 23 std::cin>>N; 24 std::cin>>K; 25 mat a(50,std::vector<long long>(50)); 26 for(int i=0;i<N;++i){ 27 for(int j=0;j<N;++j){ 28 std::cin>>a[i][j]>>std::endl; 29 } 30 } 31 32 mat ret(50,std::vector<long long>(50)); 33 for(int i=0;i<50;++i)for(int j=0;j<50;++j)ret[i][j]=0; 34 for(;K>0;K/=2,a=mul(a,a)){ 35 if(K%2==1){ 36 ret=mul(ret,a); 37 } 38 } 39 long long ans=0; 40 for(int i=0;i<50;++i){ 41 for(int j=0;j<50;++j){ 42 ans+=ret[i][j]; 43 ans%=mo; 44 } 45 } 46 std::cout<<ans<<std::endl; 47 return 0; 48} 49
エラーの詳細は次の通りです。
g++ main.cpp main.cpp:5:47: error: expected ‘;’ before ‘>’ token main.cpp:5:47: error: expected unqualified-id before ‘>’ token main.cpp: In function ‘int main()’: main.cpp:28:31: error: no match for ‘operator>>’ in ‘std::cin.std::basic_istream<_CharT, _Traits>::operator>><char, std::char_traits<char> >((* &(& a.std::vector<_Tp, _Alloc>::operator[]<std::vector<long long int>, std::allocator<std::vector<long long int> > >(((std::vector<std::vector<long long int> >::size_type)i)))->std::vector<_Tp, _Alloc>::operator[]<long long int, std::allocator<long long int> >(((std::vector<long long int>::size_type)j)))) >> std::endl’ main.cpp:28:31: note: candidates are: . .(長いので省略) .

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/13 04:40