// Another vector example - constructors, iterators, insertion, lexicographic comparison. #include #include #include using std::string; using std::vector; using std::cout; using std::endl; void print_vector(string name, vector &sv); int main(){ // Vector constructing - C++11: vector sv1{}, // An empty vector of strings sv2{10}, // A vector of 10 empty strings sv3{5, "AP"}, // A vector of 5 strings each "AP" sv4{4, "KN"}, // A vector of 4 strings each "KN" sv5{sv3.begin(), sv3.begin() + 3}, // A vector copied from front of sv3 sv6{"1", "2", "3"}; // List initialization: Three strings. // Size and capacity: cout << "sv6.size(): " << sv6.size() << endl; // 3 cout << "sv6.capacity(): " << sv6.capacity() << endl; // 3 // Change every second element of sv3 to "PA": for (vector::iterator iter = sv3.begin(); iter < sv3.end(); iter += 2){ (*iter) = "PA"; } print_vector("sv3", sv3); // Insert 3 elements from sv4 near the end of sv3: sv3.insert(sv3.end()-1, sv4.begin(), sv4.begin()+3); print_vector("sv3", sv3); print_vector("sv4", sv4); print_vector("sv5", sv5); // Lexicograhpic comparison between sw4 and sw5: if (sv4 == sv5) cout << "sv4 is equal to sv5" << endl; else if (sv4 < sv5) cout << "sv4 is less than sv5" << endl; else cout << "sv4 is greater than sv5" << endl; } void print_vector(string name, vector &sv){ cout << name << ":" << endl; for (vector::iterator iter = sv.begin(); iter != sv.end(); iter++) cout << " " << (*iter) << endl; cout << endl; }