#include <iostream> #include <string> #include <vector> int main() { using namespace std; string s1; // 创建一个string对象 string s2{"c plus plus"}; // 创建一个string对象,并初始化 string s3{s2}; // 创建一个string对象,并用s2对其进行初始化 string s4 = s2; // 创建一个string对象,并用s2对其进行初始化 s1 = "oop"; vector<string> v1; // 创建一个vector对象 v1.push_back(s1); // 向v1末尾添加数据项s1 v1.push_back(s2 + "1"); v1.push_back(s3 + "2"); v1.push_back(s4 + "3"); // 输出方式1:使用自动类型推导、范围for cout << "output1: " << endl; for(auto item: v1) cout << item << endl; // 输出方式2:使用自动类型推导、迭代器 cout << "ouput2: "; for(auto p = v1.begin(); p != v1.end(); ++p) cout << *p << endl; // 输出方式3:使用自动类型推导、索引 cout << "output3: " << endl; for(auto i = 0; i < v1.size(); ++i) cout << v1[i] << endl; vector<string> v2{v1.rbegin(), v1.rend()}; ?// 使用vector对象v1极其迭代器构造对象, cout << "v2: " << endl; for(auto item: v2) cout << item << endl; }
#include <iostream> using std::cout; using std::endl; // 定义Point类 class Point { public: Point(int x0 = 0, int y0 = 0); Point(const Point&p ); ~Point() = default; int get_x() const { return x; } // 内联成员函数 int get_y() const { return y; } // 内联成员函数 void show() const; private: int x, y; }; // Point类的实现 // 构造函数(带有默认形参值) Point::Point(int x0, int y0): x{x0}, y{y0} { cout << "constructor called." << endl; } // 复制构造函数 // 参数必须是自身对象的引用类型 Point::Point(const Point& p): x{p.x}, y{p.y} { cout << "copy constructor called." << endl; } void Point::show() const { cout << "(" << x << ", " << y << ")" << endl; } int main() { Point p1(4, 5); // 构造函数被调用 p1.show(); Point p2 = p1; // 复制构造函数被调用 p2.show(); Point p3{p2}; // 复制构造函数被调用 p3.show(); cout << p3.get_x() << endl; }
#include <iostream> #include <string> #include <vector> int main() { using namespace std; string s1; // 创建一个string对象 string s2{"c plus plus"}; // 创建一个string对象,并初始化 string s3{s2}; // 创建一个string对象,并用s2对其进行初始化 string s4 = s2; // 创建一个string对象,并用s2对其进行初始化 s1 = "oop"; 1 2 3 4 5 6 7 8 9 10 11 12 13 测试结果: 说明: 1. xx.size() 是容器类对象的方法,返回容器数据项个数。 2. xx.begin() , xx.end() , xx.rbegin() , xx.rend() 是序列类容器(container)对象的迭代器 (iterator)接口。某种程度上,是比指针更高层的抽象。 xx.begin() 指向容器内的第一个数据项, xx.end() 指向容器内最后一个数据项后面的位置; xx.rbegin() 指向容器内的最后一个数据项, xx.rend() 指向容器内第一个数据项前面的位置; 迭代器指示的是位置,通过迭代器访问数据项要通过星号运算,即代码中的line30 *itetator 这样的方 式。 vector<string> v1; // 创建一个vector对象 v1.push_back(s1); // 向v1末尾添加数据项s1 v1.push_back(s2 + "1"); v1.push_back(s3 + "2"); v1.push_back(s4 + "3"); // 输出方式1:使用自动类型推导、范围for cout << "output1: " << endl; for(auto item: v1) cout << item << endl; // 输出方式2:使用自动类型推导、迭代器 cout << "ouput2: "; for(auto p = v1.begin(); p != v1.end(); ++p) cout << *p << endl; // 输出方式3:使用自动类型推导、索引 cout << "output3: " << endl; for(auto i = 0; i < v1.size(); ++i) cout << v1[i] << endl; vector<string> v2{v1.rbegin(), v1.rend()}; // 使用vector对象v1极其迭代器, 构造对象v2 cout << "v2: " << endl; for(auto item: v2) cout << item << endl;
}
标签:string,Point,int,s2,数据类型,C语言,运算符,v1,xx From: https://www.cnblogs.com/yzhag/p/16738860.html