- 534 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 22:01:23 ]
- int main() {
using std::vector; typedef std::vector<int>::size_type vec_sz; vector<int> Integers; int Integers_num = 112, Integers_max = 100, Integers_min = 0 ; make_randnums( Integers, Integers_num, Integers_min, Integers_max); vector< vector<int> > Devided; vec_sz Devided_num = 4; Devided.resize( Devided_num ); vec_sz Dev_contents_num = Integers.size() / Devided_num ; for ( vec_sz i = 0; i < Devided_num - 1 ; i++ ) Devided.at(i).resize( Dev_contents_num ); vec_sz last_num = Integers.size() - ( Devided_num - 1 ) * Dev_contents_num; Devided.back().resize( last_num ); if ( Integers.size() == ( Devided.size() - 1 ) * Devided.at(0).size() + Devided.back().size() ) { }else exit(1); std::sort( Integers.begin(), Integers.end() ); std::reverse( Integers.begin(), Integers.end() ); vector<int>::iterator start_ptr = Integers.begin(), end_ptr = start_ptr ; for ( vec_sz i = 0; i < Devided.size(); i++ ) { std::copy( start_ptr, end_ptr += Devided.at(i).size(), Devided.at(i).begin() ); start_ptr += Devided.at(i).size(); } return 0; }
|

|