- ベストアンサー
配列の中身を逆にするために。。。
reverse関数を使おうとしました。 言語はC言語です。 reverse関数の意味に配列の並びを逆にします。 と書いてあったのでしようしたのですが。。。 コンパイルすると、「識別子が見つかりませんでした」 なります。 C言語では使えないのですか? ソフトはMicrosoft visual studioを使用してます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.2さんも書かれていますが、C++であればreverse関数を使用できます。 STLという枠組みの中で、ともおっしゃられていますが、厳密には イテレータという枠組みの中でと言った方がいいかと思います。 配列のアドレスは広義にイテレータとして扱えますので、 #include <algorithm> int main( int, char** ) { char ary[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, }; std::reverse( &ary[0], &ary[10] ); } のようにして配列の要素を逆転させることは可能です。
その他の回答 (2)
- 麻野 なぎ(@AsanoNagi)
- ベストアンサー率45% (763/1670)
> reverse関数の意味に配列の並びを逆にします。 > と書いてあったのでしようしたのですが。。。 具体的に書いてあった内容をそのまま表示した方が、回答する側としてはわかりやすいのですが。 一番それらしいのが、STL の標準アルゴリズムにある、 reverse かと思いますが、それだと、「要素の並びを逆にする」かなと思います。 これだとすると、C++の、STLという枠組みの中でしか使えません。 STL 自体は、非常に便利なものなので勉強する価値は大いにありますが。
お礼
はい。 そのとおりでした。 C++がやはり必要だと思い調べたらSTLというのがありました。 C言語でreverseがあると思っていたのはC++のことでした。 勉強不足でした。ありがとうございます。
- totsugiino
- ベストアンサー率37% (6/16)
reverse関数はC言語の標準関数にはありません。 自作する必要があるのではないでしょうか。
お礼
最近C++を勉強しました。 C言語にはないんですね。 配列を他に作ったソースを作りました。 ありがとうございます。
お礼
char**という使い方もできるんですね。 stdについては最近しました。 これでまた一つ勉強にないりました。 CGHをやることになったので、真剣にC++について勉強してみます。 イテレータについてはまだよく分かってないのでその部分もやります。 ありがとうございました。