11. október 2006

How I Learned to Stop Worrying and Love the STL


#include

std::string s = "abc"

do
{
v.push_back( s )
}
while( next_permutation(s.begin(), s.end()) );


Smíðar allar samsetningar á röðun 'a','b' og 'c' og vistar þær í v.

Bjútíið í þessu er að til þess að geta gert þetta með custom hluti þá þarf einungis að implementa less-than operatorinn.


struct Box
{
public:
int number;
bool operator < (const Box& b)
{
return number < b.number;
}

};

typedef std::vector Boxes;

Boxes b;
b.push_back( Box(1) );
b.push_back( Box(2) );
b.push_back( Box(3) );

std::vector perms;

do
{
perms.push_back( b )
}
while( next_permutation(b.begin(), b.end()) );



Sweeeet :D

Engin ummæli: