/
/
// 1)use int array to simulate enumeration of binary numbers
/
/
int *arr = new int[20];
for(int i = 0; i < 20; i++) arr[i] = 0;
for (int i = 0; i < 32; i++)
{
copy(arr, arr + 20, ostream_iterator<int>(cout, ""));
cout << endl;
int *p = arr+19;
while(1 == *p) *p-- = 0;
if (p >= arr) *p = 1;
}
delete [] arr;
/
/
// 2)enumerate binary numbers and munually convert binary number to string
/
/
#include "stdafx.h"
#include <deque>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
string str = "abcdef";
int count = 1 << str.size();
deque<int> deq;
for(int i = 0; i < count; i++)
{
deq.clear();
int num = i;
while(num > 0)
{
deq.push_back(num%2);
num /= 2;
}
while(deq.size() < str.size())
deq.push_front(0);
cout << i << ": " << endl;
copy(deq.begin(), deq.end(), ostream_iterator<int>(cout, ""));
cout << endl;
for(int idx = 0; idx < deq.size(); idx++)
if(1 == deq[idx])
cout << str[idx];
cout << endl;
}
system("pause");
return 0;
}
/
/
// 3)bitset
/
/
#include "stdafx.h"
#include <bitset>
#include <string>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
bitset<8> bits;
string str = "abcdef"; //str.size() should <= 8
int max = 2 << (str.size() - 1);
for(int bit_value = 0; bit_value < max; ++bit_value)
{
bits = bit_value;
for(int idx = 0; idx < str.size(); ++idx)
{
if(bits[idx])
cout << str[idx];
}
cout << " -- bit value = " << bit_value << ", bits = " << bits << endl;
}
system("pause");
return 0;
}
my_combination in c++
最新推荐文章于 2021-05-19 14:56:44 发布