###実現したいこと
下記のstd::vectorを反転させる関数
void reverse(std::vector<int>& values)
を使って作りたい。
###エラー
kadai12-2.cpp: In function 'int main()': kadai12-2.cpp:20:14: error: void value not ignored as it ought to be 20 | a=reverse(vals); | ~~~~~~~^~~~~~ kadai12-2.cpp:22:21: error: invalid initialization of reference of type 'std::vector<int>&' from expression of type 'int' 22 | print_container(a); | ^ kadai12-2.cpp:4:40: note: in passing argument 1 of 'void print_container(std::vector<int>&)' 4 | void print_container(std::vector<int>& values); | ~~~~~~~~~~~~~~~~~~^~~~~~
###問題点
voidを使った関数の使い方がわからない。
###コード
C++
1#include<iostream> 2#include<vector> 3#include<utility> 4void print_container(std::vector<int>& values); 5void reverse(std::vector<int>& values); 6int main() 7{ 8 int i,n,val,a; 9 std::cout<<"データ数を入力してください:"; 10 std::cin>>n; 11 std::cout<<"整数デーをタ入力してください\n"; 12 std::vector<int> vals={}; 13 for(i=0;i<n;i++){ 14 std::cin>>val; 15 vals.push_back(val); 16 } 17 std::cout<<"入力されたデータ:\n"; 18 print_container(vals); //入力されたデータを出力する 19 std::cout<<"\n"; 20 a=reverse(vals); 21 std::cout<<"反転結果:\n"; 22 print_container(a); 23 std::cout<<"\n"; 24 return 0; 25} 26void print_container(std::vector<int>& values) //コンテナを表示する関数 27{ 28 int n=values.size(); 29 int i; 30 for(i=0;i<n;i++){ 31 std::cout<<values[i]<<" "; 32 } 33} 34void reverse(std::vector<int>& values) 35{ 36 int i=0; 37 int j=values.size()-1; 38 while(i<j){ 39 std::swap(values[i],values[j]); 40 i++; 41 j--; 42 } 43}
エラーの通りだと思いますが?
voidの関数から結果を受け取ったり、その結果を関数の引数にしたり・・・
回答1件
あなたの回答
tips
プレビュー