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

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

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

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

C++

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

Q&A

解決済

1回答

589閲覧

voidを使った関数の使い方が分からない

langhtorn

総合スコア104

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

C++

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

0グッド

0クリップ

投稿2020/05/29 06:46

###実現したいこと
下記の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}

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

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

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

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

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

cateye

2020/05/29 10:05

エラーの通りだと思いますが? voidの関数から結果を受け取ったり、その結果を関数の引数にしたり・・・
guest

回答1

0

ベストアンサー

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 n; 9 std::cout<<"データ数を入力してください:"; 10 std::cin>>n; 11 std::cout<<"整数デーをタ入力してください\n"; 12 std::vector<int> vals={}; 13 for(int i=0;i<n;i++){ 14 int val; 15 std::cin>>val; 16 vals.push_back(val); 17 } 18 std::cout<<"入力されたデータ:\n"; 19 print_container(vals); //入力されたデータを出力する 20 std::cout<<"\n"; 21 reverse(vals); 22 std::cout<<"反転結果:\n"; 23 print_container(vals); 24 std::cout<<"\n"; 25 return 0; 26} 27...

投稿2020/05/29 07:23

episteme

総合スコア16614

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問