質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

1回答

1992閲覧

error: invalid typesが出てしまう

Soupon2gou

総合スコア0

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2022/05/22 05:10

以下のようにコードを書きます。
(質問は一部のエラーだけなので一番下の質問とエラーを先に見て頂ければよろしいと思います。)

c++

1#include<bits/stdc++.h> 2using namespace std; 3typedef long long ll; 4typedef pair<ll, ll> PLL; 5typedef vector<int> VI; 6typedef vector<char> VC; 7typedef vector<double> VD; 8typedef vector<double> VL; 9typedef vector<string> VS; 10typedef vector<PLL> VP; 11typedef vector<ll> VLL; 12const static int INF = 1000000000; 13const static int MOD = 1000000007; 14#define rep(i,n) for (ll i=0; i<(ll)(n); i++) 15#define repd(i,n) for (ll i=n-1; i>=0; i--) 16#define rept(i,m,n) for(ll i=m; i<n; i++) 17#define stl_rep(itr, x) for (auto itr = x.begin(); itr != x.end(); ++itr) 18#define all(x) (x).begin(), (x).end() 19#define F first 20#define S second 21#define PF push_front 22#define PB push_back 23#define SORT(V) sort((V).begin(), (V).end()) 24#define RVERSE(V) reverse((V).begin(), (V).end()) 25#define paired make_pair 26#define PRINT(V) for(auto v : (V)) cout << v << " " 27 28int main(){ 29 30 int n; 31 cin>>n; 32 vector<int> s(n); 33 rep(i,n){ 34 cin>>s[i]; 35 } 36 37 38 vector<int> time(10); 39 int cnt[10]; 40 rep(i,n){ 41 //0~9までの場合でかかる時間をそれぞれ求めてtimeにpushしていく 42 int t=-1; 43 44 rep(j,n){ 45 rep(k,10){ 46 if(s[j][k]==i){ 47 cnt[k]++; 48 } 49 } 50 } 51 52 cout<<cnt<<endl; 53 int time1=-1; 54 rep(j,10){ 55 if(cnt[j]!=0){ 56 time1=j; 57 break; 58 } 59 } 60 61 int time2=0; 62 rep(j,10){ 63 64 if(2<=cnt[j]){ 65 time2+=cnt[j]-1; 66 } 67 68 } 69 70 t=time1+time2*10; 71 72 time.push_back(t); 73 74 } 75 76 int ans; 77 rep(i,n) ans=min(ans,time[i]); 78 cout<<ans<<endl; 79}

すると以下のようなエラーが出てきてしまいます。

c++

1./Main.cpp: In function ‘int main(): 2./Main.cpp:46:18: error: invalid types ‘__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type {aka int}[ll {aka long long int}]for array subscript 3 46 | if(s[j][k]==i){ 4 | ^

このエラーの意味がよく分かりません。
自分の中では、おそらくs[j][k]とiの型が比較演算子を使うのには不適切な組み合わせをしているのだと思っています。

このエラーはどのようにしたら直せますか?型変換の仕方等の技術がまだまだ不十分なので教えてもらいたいです。
回答よろしくお願いします。m(_ _"m)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

vector<int> s(n);

なんだから s[j] の型は int、
s[j][k] は s[j]すなわちintに対し [k] を作用させるわけだがそんなことできない。

投稿2022/05/22 05:30

編集2022/05/22 05:36
episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問