PROGRAM :
Code:
#include <algorithm>
#include <iostream>
#include <vector>
template <class S>
class generator
{
S vl_;
public:
generator(const S &vl) : vl_ (vl)
{
}
S operator()()
{
return vl_ += vl_;
}
};
int main ()
{
typedef std::vector<short,
std::allocator<short> > vector;
vector::valuetype a[4] = { 1, 2, 3, 4 };
vector w1(a, a + sizeof a / sizeof *a);
vector w2 = w1;
vector w3;
generator<vector::valuetype> gn(1);
std::generate(w1.begin(), w1.end(), gn);
std::generaten(w2.begin(), 3, gn);
std::generaten(std::backinserter(w3), 5, gn);
std::ostreamiterator<vector::valuetype, char,
std::chartraits<char> > out(std::cout, " ");
std::copy(w1.begin(), w1.end(), out);
std::cout << std::endl;
std::copy(w2.begin(), w2.end(), out);
std::cout << std::endl;
std::copy(w3.begin(), w3.end(), out);
std::cout << std::endl;
std::generaten(out, 3, gn);
std::cout << std::endl;
return 0;
}
Program Output:
Code:
2 4 8 16
2 4 8 4
2 4 8 16 32
2 4 8
Bookmarks