#include <iostream>
#include <vector>
#include <string>
int main() {
std::vector<bool> isPrime(600, false);
std::cout << "=== Construction ===" << std::endl;
std::cout << "Capacity:\t" << isPrime.capacity() << std::endl;
std::cout << "Size:\t\t" << isPrime.size() << std::endl;
std::cout << "====================" << std::endl << std::endl;
isPrime = std::move(std::vector<bool>(100, false));
std::cout << "=== Move assignment ===" << std::endl;
std::cout << "Capacity:\t" << isPrime.capacity() << std::endl;
std::cout << "Size:\t\t" << isPrime.size() << std::endl;
std::cout << "=======================" << std::endl << std::endl;
auto tmp = std::vector<bool>(50, false);
isPrime = tmp;
std::cout << "=== Copy assignment ===" << std::endl;
std::cout << "Capacity:\t" << isPrime.capacity() << std::endl;
std::cout << "Size:\t\t" << isPrime.size() << std::endl;
std::cout << "=======================" << std::endl << std::endl;
isPrime.shrink_to_fit();
std::cout << "=== After Shrinking ===" << std::endl;
std::cout << "Capacity:\t" << isPrime.capacity() << std::endl;
std::cout << "Size:\t\t" << isPrime.size() << std::endl;
std::cout << "=======================" << std::endl << std::endl;
std::vector<bool>(5,false).swap( isPrime );
std::cout << "=== Swap assignment ===" << std::endl;
std::cout << "Capacity:\t" << isPrime.capacity() << std::endl;
std::cout << "Size:\t\t" << isPrime.size() << std::endl;
std::cout << "=======================" << std::endl << std::endl;
std::vector<int> newVector(600, 5);
std::cout << "=== Construction ===" << std::endl;
std::cout << "Capacity:\t" << newVector.capacity() << std::endl;
std::cout << "Size:\t\t" << newVector.size() << std::endl;
std::cout << "====================" << std::endl << std::endl;
newVector = std::move(std::vector<int>(100, 5));
std::cout << "=== Move assignment ===" << std::endl;
std::cout << "Capacity:\t" << newVector.capacity() << std::endl;
std::cout << "Size:\t\t" << newVector.size() << std::endl;
std::cout << "=======================" << std::endl << std::endl;
auto temp = std::vector<int>(50, 5);
newVector = temp;
std::cout << "=== Copy assignment ===" << std::endl;
std::cout << "Capacity:\t" << newVector.capacity() << std::endl;
std::cout << "Size:\t\t" << newVector.size() << std::endl;
std::cout << "=======================" << std::endl << std::endl;
newVector.shrink_to_fit();
std::cout << "=== After Shrinking ===" << std::endl;
std::cout << "Capacity:\t" << newVector.capacity() << std::endl;
std::cout << "Size:\t\t" << newVector.size() << std::endl;
std::cout << "=======================" << std::endl << std::endl;
std::vector<int>(5,5).swap( newVector );
std::cout << "=== Swap assignment ===" << std::endl;
std::cout << "Capacity:\t" << newVector.capacity() << std::endl;
std::cout << "Size:\t\t" << newVector.size() << std::endl;
std::cout << "=======================" << std::endl << std::endl;
std::cin.get();
return 0;
}