fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <utility>
  4.  
  5. int main() {
  6. std::vector<std::pair<int, float>> v = { {1, 1.5f} };
  7.  
  8. // The interesting line:
  9. const std::pair<int, int>& x = v[0];
  10.  
  11. const auto& y = v[0];
  12.  
  13. std::cout << "before:\n";
  14. std::cout << "\tv[0]: " << std::get<1>(v[0]) << "\n";
  15. std::cout << "\tx: " << std::get<1>(x) << "\n";
  16. std::cout << "\ty: " << std::get<1>(y) << "\n";
  17.  
  18. std::get<1>(v[0]) = 3.5f;
  19.  
  20. std::cout << "\nafter:\n";
  21. std::cout << "\tv[0]: " << std::get<1>(v[0]) << "\n";
  22. std::cout << "\tx: " << std::get<1>(x) << "\n";
  23. std::cout << "\ty: " << std::get<1>(y) << "\n";
  24. }
Success #stdin #stdout 0s 3428KB
stdin
Standard input is empty
stdout
before:
	v[0]: 1.5
	x:    1
	y:    1.5

after:
	v[0]: 3.5
	x:    1
	y:    3.5