• ベストアンサー

関数の引数にSTLを使う

こんにちは。C++の勉強を最近始めました。 メンバ関数の引数に、STL(queue)を使おうとしています。 以下のように、参照にして使おうと思っています。 int test01::method(queue<int>& q) { return 0; } ですが、コンパイルしようとすると、 「識別子 'queue' がシンタックスエラーを起こしました。」 と言われてエラーになってしまいます・・・。 (他の箇所でqueueを使っていますが、そこではエラーは出ないので、 ヘッダファイルや名前空間はちゃんと指定できていると思います) STLに関する情報を集めてみたのですが、 引数にして使った例を見つけることができませんでした。 シンタックスエラーなので、文法や構文などが正しくないのだと思うのですが、 関数の引数にそもそもSTLを指定できないのか、 コーディングの仕方が間違っているのか、判断ができません。 どのようにしたら、引数に指定できるのでしょうか? ご存知の方がいらしたら、おしえていただきたいです。 よろしくおねがいします。

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

  • ベストアンサー
回答No.1

プログラムを見せてください。 queue<int>& q ここの部分ではコンパイルエラーは出ませんでしたので、 指定は間違ってないと思いますよ。 (自分は STL を引数によく使ってます)

ijhnb6543f
質問者

お礼

試していただいて済みません。 原因としては、using namespace std;を指定していませんでした。 名前空間の指定とか、スコープを必要最低限に絞っていたのですが、 絞りすぎたみたいです・・・。 今度質問させてもらうときは、 一部分ではなく、もっと全体的なプログラムを書こうと思います。 ありがとうございました。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

前後がないのでなんともいえないんだけど, ・一応 std::queue にしてみる ということは考えられるかな. まあ, かっこの対応がとれてないとかいう可能性も実際にはあるんだけど.

ijhnb6543f
質問者

お礼

うひゃー、ごめんなさい! using namespace std;を指定したら、コンパイルできましたっ! メンバ関数の定義と宣言を、別ファイルで行なっているのですが、 そこだけ、 using namespace std; を指定していませんでした・・・。 ありがとうございました。

関連するQ&A