掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
このプログラム、分かりません!! (ID:55542)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
'このプログラム'って私が書いたヤツですか^^; // テンプレート引数に渡された型のオブジェクトに適用されるsize関数が返す値を判定し, // 左辺 < 右辺のときに true を,そうでないときに false を返す // 関数オブジェクトを定義 template < typename Sequence > class less_length : public std::binary_function< Sequence, Sequence, bool > { public: bool operator()( const Sequence& lhs, const Sequence& rhs ) const { return lhs.size() < rhs.size(); } }; int main() { // string型オブジェクトを要素とするvector型配列オブジェクトdataを定義 std::vector< std::string > data; // 標準入力から1行をstring型オブジェクトlineに読み込み, // はじめの80文字までをdataに追加することを // 入力が終了するまで繰り返す for( std::string line; std::getline( std::cin, line ); data.push_back( line.substr( 0, 80 ) ) ){ ; } // dataに格納された要素のはじめから終わりまでを // less_lengthで定義した基準に従ってソートする std::stable_sort( data.begin(), data.end(), less_length< std::string >() ); // dataのはじめから終わりまで,空の要素を除いて標準出力先に出力する for( std::vector< std::string >::const_iterator it = data.begin(); it != data.end(); ++it ){ if( !it->empty() ){ std::cout << *it << std::endl; } } } テンプレート、関数オブジェクトや、標準ライブラリのテンプレート、関数については 参考書等で調べて下さい。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.