Ejemplo n.º 1
0
void basicOps(char* s) {
	cout << "------- " << s << " -------" << endl;
	typedef ContainerOfInt Ci;
	Ci c;
	print(c, "c after default constructor");
	Ci c2(10, 1); // 10 elements, values all 1
	print(c2, "c2 after constructor(10,1)");
	int ia[] = {1, 3, 5, 7, 9};
	const int IASZ = sizeof(ia) / sizeof(*ia);
	// Initialize with begin & end iterators:
	Ci c3(ia, ia + IASZ);
	print(c3, "c3 after constructor(iter, iter)");
	Ci c4(c2); // copy-constructor
	print(c4, "c4 after copy-constructor(c2)");
	c = c2; // Assignment operator
	print(c, "c after operator=c2");
	c.assign(10, 2); // 10 elments, values all 2
	print(c, "c after assign(10, 2)");
	// Assign with begin & end iterators:
	c.assign(ia, ia + IASZ);
	print(c, "c after assign iter, iter)");
	cout << "c using reverse iterators:" << endl;
	typename Ci::reverse_iterator rit = c.rbegin();
	while (rit != c.rend())
		cout << *rit++ << " ";
	cout << endl;
	c.resize(4);
	print(c, "c after resize(4)");
	c.push_back(47);
	print(c, "c after push_back()");
	c.pop_back();
	print(c, "c after pop_back()");
	typename Ci::iterator it = c.begin();
	++it; ++it;
	c.insert(it, 74);
	print(c, "c after insert(it, 74)");
	it = c.begin();
	++it;
	c.insert(it, 3, 96);
	print(c, "c after insert(it, 3, 96)");
	it = c.begin();
	++it;
	c.insert(it, c3.begin(), c3.end());
	print(c, "c after insert("
			"it, c3.begin(), c3.end())");
	it = c.begin();
	++it;
	c.erase(it);
	print(c, "c after erase(it)");
	typename Ci::iterator it2 = it = c.begin();
	++it;
	++it2; ++it2; ++it2; ++it2; ++it2;
	c.erase(it, it2);
	print(c, "c after erase(it, it2)");
	c.swap(c2);
	print(c, "c after swap(c2)");
	c.clear();
	print(c, "c after clear()");
}