プログラマー軍団がC/C++の宿題を解決します 34代目

このエントリーをはてなブックマークに追加
303デフォルトの名無しさん
>>286
#include <algorithm>
#include <iostream>
#include <list>
#include <string>
struct pred{
  bool operator()(const std::string& x, const std::string& y)
    {return x.length() < y.length();}
};
int main(){
  std::list<std::string> li;
  std::string line;
  while (std::getline(std::cin, line))
    if (!line.empty())
      li.push_back(line.length() > 80 ? line.substr(0, 80) : line);
  li.sort(pred());
  for (std::list<std::string>::const_iterator first = li.begin(), last = li.end(); first != last; ++first)
    std::cout << *first << std::endl;
}