initialization/init4.cc - Initialization - ambiguities. | Lecture 2 - slide 26 : 29 Program 5 |
// Illustrates ambiguities in certain initializations. #include <iostream> #include <string> #include <vector> int main(){ using std::vector; using std::string; // A trap: vector<int> v1{99}; // A vector with single int element, with value 99 - prefer list initialization vector<int> v2(99); // A vector of 99 ints with default value 0 - forces use of a Vector constructor // As expected: vector<string> v3{"hello"}; // A vector with single string element "hello" vector<string> v4("hello"); // ERROR: There is no vector constructor with a single string parameter for(auto x: v1) std::cout << x << std::endl; // 99 for(auto x: v2) std::cout << x << std::endl; // 0 0 ... 0 (99 zeros) for(auto x: v3) std::cout << x << std::endl; // hello }