###実現したいこと
コンテナに重複した値が含まれているか判定したい
###エラー
とにかく長いので主要そうなところだけまとめます。
どうやらintと**std::vector<double>**がミスマッチみたいなのですがどうなおしたらいいのかわかりません。
kadai13.cpp: In function 'bool has_duplicate_numbers(std::vector<double>&)': kadai13.cpp:30:17: error: no match for 'operator!=' (operand types are 'std::vector<double>' and 'int') 30 | while(values!=0){ | ~~~~~~^~~ | | | | | int | std::vector<double> kadai13.cpp: In function 'bool has_duplicate_numbers(std::vector<double>&)': kadai13.cpp:30:17: error: no match for 'operator!=' (operand types are 'std::vector<double>' and 'int') 30 | while(values!=0){ | ~~~~~~^~~ | | | | | int | std::vector<double> kadai13.cpp:30:19: note: mismatched types 'const __gnu_cxx::new_allocator<_Tp>' and 'int' 30 | while(values!=0){ | ^ kadai13.cpp:31:21: error: no match for 'operator%' (operand types are 'std::vector<double>' and 'int') 31 | count[values%10]++; | ~~~~~~^~~ | | | | | int | std::vector<double> kadai13.cpp:32:15: error: no match for 'operator/=' (operand types are 'std::vector<double>' and 'int') 32 | values/=10; | ~~~~~~^~~~
###コード
C++
1#include<iostream> 2#include<vector> 3bool has_duplicate_numbers(std::vector<double>& values); 4int main() 5{ 6 int i; 7 std::cout<<"データ数を入力してください\n"; 8 int n; 9 std::cin>>n; 10 std::cout<<"実数値データを入力してください\n"; 11 std::vector<double> vals; 12 for(i=0;i<n;i++){ 13 int val; 14 std::cin>>val; 15 vals.push_back(val); 16 } 17 if(has_duplicate_numbers(vals)){ 18 std::cout<<"重複した値が含まれている\n"; 19 }else{ 20 std::cout<<"重複した値が含まれていない\n"; 21 } 22} 23bool has_duplicate_numbers(std::vector<double>& values) //std::vectorコンテナに重複した値が含まれているか判定する関数 24{ 25 int i; 26 int n=values.size(); 27 int count[n]={0}; 28 while(values!=0){ 29 count[values%10]++; 30 values/=10; 31 } 32 for(i=0;i<n;i++){ 33 if(count[i]>1) return 0; 34 } 35 return false; 36}
ここのところの一連の質問を見るに...
ちっとも成長してないね。教本を読み直すとこからやり直しませんか?
回答3件
あなたの回答
tips
プレビュー