【C++で回答】関数を使って小さい順に並び替える

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

【C++で回答】関数を使って小さい順に並び替える

投稿記事 by beatle » 14年前

C言語掲示板の質問に、C++で答えてみるシリーズ1回目。いや、続くかは知らないけど。
第1回目はsayaさんの質問「関数を使って小さい順に並び替える
質問の中では「3x3の行列」が登場するっぽかったけど、結局3つの整数のソートの質問でした。
C++で書くとこうなるよと。

CODE:

#include 
#include 
#include 
#include 
using namespace std;

int main()
{
	multiset s;
	copy_n(istream_iterator(cin), 3, inserter(s, begin(s)));
	copy(begin(s), end(s), ostream_iterator(cout, " "));
	cout (cin), 3, inserter(s, begin(s)));
は、cinから作った入力イテレータから3つ、sに挿入コピーするよっていう意味。

CODE:

copy(begin(s), end(s), ostream_iterator(cout, " "));
は、sの要素全てを、coutから作った出力イテレータに出力するよという意味。

どこにもソート処理は書いてないけど、multisetを使っているから自動でソートされます。
最後に編集したユーザー beatle on 2011年11月25日(金) 15:52 [ 編集 1 回目 ]

アバター
bitter_fox
記事: 607
登録日時: 15年前

Re: 【C++で回答】関数を使って小さい順に並び替える

投稿記事 by bitter_fox » 14年前

よーし、お兄さんScalaで答えちゃうゾッ

CODE:

object Main
{
	def main(args : Array[String])
	{
		val s = new java.util.Scanner(System.in)

		(1 to 3).map(_ => s.nextInt).sorted.foreach(println)
	}
}
・・・メソッドを呼んだだけであんまりおもしろくならなかった。
[hr][修正]
もうちっと修正。
for除去
s.nextIntは一回しか出てきてないんでf削除
最後に編集したユーザー bitter_fox on 2011年11月26日(土) 17:48 [ 編集 5 回目 ]

アバター
tk-xleader
記事: 158
登録日時: 14年前

RE: 【C++で回答】関数を使って小さい順に並び替える

投稿記事 by tk-xleader » 14年前

では私はD言語でやってみます。

CODE:

import std.cstream;
import std.conv;

void main(){
	int[3] array;
	foreach(ref int value; array){
		value = to!int(din.readLine());
	}
	array.sort;
	foreach(int value; array){
		dout.writef("%d ",value);
	}
	dout.write('\n');
}
ソートがプロパティ一発で出来るのが強みですね。