10 partitions.push_back(
Partition(1, collectionSize));
12 int first = collectionSize - minCollectionSize,
second = minCollectionSize;
13 while (first >= second) {
15 std::vector<Partition> subPartitions = this->
partitions(first, second);
16 std::vector<Partition>::iterator isub;
17 for (isub = subPartitions.begin(); isub != subPartitions.end(); isub++) {
23 copy(sub.begin(), sub.end(), partition.begin());
24 partition[partition.size() - 1] =
second;
25 partitions.push_back(partition);
35 int minCollectionSize)
const {
39 std::vector<std::vector<Partition> > sortedPartitions;
40 sortedPartitions.resize(partitions.rbegin()->size());
42 for (std::vector<Partition>::const_iterator
i = partitions.begin();
i != partitions.end();
i++) {
43 sortedPartitions[(*i).size() - 1].push_back(*
i);
46 return sortedPartitions;
std::vector< std::vector< Partition > > sortedPartitions(int collectionSize, int minCollectionSize=1) const
U second(std::pair< T, U > const &p)
std::vector< Partition > partitions(int collectionSize, int minCollectionSize=1) const
std::vector< int > Partition