Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include <vector>
- #include <algorithm>
- class Item
- {
- public:
- Item() { std::cout << "Item default constructed " << this << '\n'; }
- Item(const Item& it) { std::cout << "Item copy constructed " << this << " from " << &it << '\n'; }
- Item(Item&& it) { std::cout << "Item move constructed " << this << " from " << &it << '\n'; }
- Item& operator=(const Item& it) { std::cout << "Item copy assigned " << this << " from " << &it << '\n'; return *this; }
- Item& operator=(Item&& it) { std::cout << "Item move assigned " << this << " from " << &it << '\n'; return *this; }
- ~Item() { std::cout << "Item destructed " << this << '\n'; }
- friend std::ostream& operator<<(std::ostream& out, const Item& item)
- {
- return out << "Item # " << &item;
- }
- };
- int main()
- {
- Item it;
- std::vector<Item> items;
- std::cout << "Pre reserve\n";
- items.reserve(3);
- std::cout << "Post reserve\n";
- //items.emplace_back(Item{});
- items.emplace(items.end());
- items.emplace(items.end());
- //items.insert(items.begin(), it);
- //items.insert(items.begin(), Item{});
- //items.emplace(items.begin());
- std::copy(items.begin(), items.end(), std::ostream_iterator<Item>(std::cout, "\n"));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement