こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

vectorを引数とする関数

以下のようなプログラムにおいて、

#include <stdio.h>
#include <cstdlib>
#include <iostream>
#include <vector>
#include <fstream>
#include <sstream>
#include <map>
using namespace std;
double func(std::vector<double> *tmp2);
int main(){

vector <double> tmp;
tmp.resize(0);
tmp.push_back(0.12458);
tmp.push_back(-12.45);
tmp.push_back(4.253);

cout << func(&tmp) << endl;
return 0;
}

double func(std::vector<double> *tmp2){
return tmp2[1];
}

vector tmpをfuncに渡して、tmp[1]、すなわち、
-12.45が出力されるようにしたいと思います。
ですが、どうしてもコンパイルエラーが残ります。
どのようにすればよいでしょうか?

投稿日時 - 2007-01-07 18:39:19

QNo.2649631

困ってます

質問者が選んだベストアンサー

関数funcにおいてtemp2はvectorへの「ポインタ」なのですから
*を使って参照しなければなりません。
 return (*tmp2)[1];

C++なので、参照渡しを使っても良いでしょう。

投稿日時 - 2007-01-07 19:32:16

お礼

ありがとうございます。
解決しました。

投稿日時 - 2007-01-07 19:48:46

ANo.1

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問