int main()
{
	std::unordered_set<int> coll;

	// create inserter for coll
	// - inconvenient way
	asso_insert_iterator<decltype(coll)> iter(coll);

	// insert elements with the usual iterator interface
	*iter = 1;
	iter++;
	*iter = 2;
	iter++;
	*iter = 3;

	PRINT_ELEMENTS(coll);

	// create inserter for coll and insert elements
	// - convenient way;
	asso_inserter(coll) = 44;
	asso_inserter(coll) = 55;

	PRINT_ELEMENTS(coll);

	// use inserter with an algorithm
	std::vector<int> vals = { 33, 67, -4, 13, 5, 2 };
	std::copy (vals.begin(), vals.end(),	// source
				asso_inserter(coll));		// destination

	PRINT_ELEMENTS(coll);
}
예제 #2
0
int main()
{
    std::set<int>    coll1;
    std::vector<int> coll2;

    // insert elements from 1 to 9 into coll1
    for (int i=1; i<=9; ++i) {
        coll1.insert(i);
    }
    PRINT_ELEMENTS(coll1,"initialized: ");

    // transform each element from coll1 to coll2
    // - square transformed values
    std::transform (coll1.cbegin(),coll1.cend(),  // source
                    std::back_inserter(coll2),    // destination
                    square);                      // operation

    PRINT_ELEMENTS(coll2,"squared:     ");
}