fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4.  
  5. int main() {
  6. std::vector<bool> isPrime(600, false);
  7.  
  8. std::cout << "=== Construction ===" << std::endl;
  9. std::cout << "Capacity:\t" << isPrime.capacity() << std::endl;
  10. std::cout << "Size:\t\t" << isPrime.size() << std::endl;
  11. std::cout << "====================" << std::endl << std::endl;
  12.  
  13. isPrime = std::move(std::vector<bool>(100, false));
  14.  
  15. std::cout << "=== Move assignment ===" << std::endl;
  16. std::cout << "Capacity:\t" << isPrime.capacity() << std::endl;
  17. std::cout << "Size:\t\t" << isPrime.size() << std::endl;
  18. std::cout << "=======================" << std::endl << std::endl;
  19.  
  20. auto tmp = std::vector<bool>(50, false);
  21. isPrime = tmp;
  22.  
  23. std::cout << "=== Copy assignment ===" << std::endl;
  24. std::cout << "Capacity:\t" << isPrime.capacity() << std::endl;
  25. std::cout << "Size:\t\t" << isPrime.size() << std::endl;
  26. std::cout << "=======================" << std::endl << std::endl;
  27.  
  28. isPrime.shrink_to_fit();
  29.  
  30. std::cout << "=== After Shrinking ===" << std::endl;
  31. std::cout << "Capacity:\t" << isPrime.capacity() << std::endl;
  32. std::cout << "Size:\t\t" << isPrime.size() << std::endl;
  33. std::cout << "=======================" << std::endl << std::endl;
  34.  
  35. std::vector<bool>(5,false).swap( isPrime );
  36.  
  37. std::cout << "=== Swap assignment ===" << std::endl;
  38. std::cout << "Capacity:\t" << isPrime.capacity() << std::endl;
  39. std::cout << "Size:\t\t" << isPrime.size() << std::endl;
  40. std::cout << "=======================" << std::endl << std::endl;
  41.  
  42. std::vector<int> newVector(600, 5);
  43.  
  44. std::cout << "=== Construction ===" << std::endl;
  45. std::cout << "Capacity:\t" << newVector.capacity() << std::endl;
  46. std::cout << "Size:\t\t" << newVector.size() << std::endl;
  47. std::cout << "====================" << std::endl << std::endl;
  48.  
  49. newVector = std::move(std::vector<int>(100, 5));
  50.  
  51. std::cout << "=== Move assignment ===" << std::endl;
  52. std::cout << "Capacity:\t" << newVector.capacity() << std::endl;
  53. std::cout << "Size:\t\t" << newVector.size() << std::endl;
  54. std::cout << "=======================" << std::endl << std::endl;
  55.  
  56. auto temp = std::vector<int>(50, 5);
  57. newVector = temp;
  58.  
  59. std::cout << "=== Copy assignment ===" << std::endl;
  60. std::cout << "Capacity:\t" << newVector.capacity() << std::endl;
  61. std::cout << "Size:\t\t" << newVector.size() << std::endl;
  62. std::cout << "=======================" << std::endl << std::endl;
  63.  
  64. newVector.shrink_to_fit();
  65.  
  66. std::cout << "=== After Shrinking ===" << std::endl;
  67. std::cout << "Capacity:\t" << newVector.capacity() << std::endl;
  68. std::cout << "Size:\t\t" << newVector.size() << std::endl;
  69. std::cout << "=======================" << std::endl << std::endl;
  70.  
  71. std::vector<int>(5,5).swap( newVector );
  72.  
  73. std::cout << "=== Swap assignment ===" << std::endl;
  74. std::cout << "Capacity:\t" << newVector.capacity() << std::endl;
  75. std::cout << "Size:\t\t" << newVector.size() << std::endl;
  76. std::cout << "=======================" << std::endl << std::endl;
  77.  
  78. std::cin.get();
  79.  
  80. return 0;
  81.  
  82. }
Success #stdin #stdout 0s 2976KB
stdin
stdout
=== Construction ===
Capacity:	608
Size:		600
====================

=== Move assignment ===
Capacity:	128
Size:		100
=======================

=== Copy assignment ===
Capacity:	128
Size:		50
=======================

=== After Shrinking ===
Capacity:	64
Size:		50
=======================

=== Swap assignment ===
Capacity:	32
Size:		5
=======================

=== Construction ===
Capacity:	600
Size:		600
====================

=== Move assignment ===
Capacity:	100
Size:		100
=======================

=== Copy assignment ===
Capacity:	100
Size:		50
=======================

=== After Shrinking ===
Capacity:	50
Size:		50
=======================

=== Swap assignment ===
Capacity:	5
Size:		5
=======================