C++基础第六课
作者:互联网
一、C++中一些特殊的运算符的重载
1.
第三个原因是对将亡值进行修改没有意义的,所以不成立
2.智能指针
注意智能指针中 ()的重载我们要注意 operator() 这是一个函数名 是一体的,
运行的时候就是相当于 a.operator()(参数)
3.仿函数就是将系统的一些函数重写
就像这样设计一个 Add_Int 的类,然后重载()函数,在主函数中 定义一个add对象,那么 你写一个 int x=add(10,20),如果你不看类的函数只看着一条语句就会认为这是系统函数add();这样你自己设计的就叫做仿函数(这个()重载就可以称为二元仿函数)
4.仿函数和函数指针直接的区别
- 仿函数可以作为内联函数运行更快
- 仿函数比函数指针用的更加简便
模板 template
为什么size empty full 这三个函数要定义成常函数
::普通对象可以调用普通方法和常方法,而常对象只能调用常方法,这样把这些不涉及到成员属性改变的方法定义成常方法可以使代码的利用率提高,加大了代码的复用程度。
//data = new Type[maxsize] 会出现逻辑和物理上的差异,因为用new会自动构建对象,但是我们在创建栈的时候一开始未曾入栈,可是由于NEW却已经有了对象,之就会弄错。所以在模板类里慎用new。
其实说到底模板类就是一种生成类型的类型,也可以理解为通用类型,你可以控制他变成其他类型
********String***********
字符数组
字符串常量
malloc堆区字符串
拷贝函数
string使得字符串的操作变得很简单,因为头文件中就包含了许多操作函数
#include<cstdlib> #include<assert.h> #include<time.h> #include<math.h> #include<string> #include <string.h> #include<vector> #include<queue> #include<stack> #include<iostream> using namespace std; int main() { string s1("liyue"); s1.append("happy");//在字符串末尾添加新字符串 int len = s1.size();//字符串长度 int cap = s1.capacity();//字符串容量 for (int i = 0; i < len;i++)//利用数组下标访问 { cout << s1[i] << ""; } s1[2] = 'm';//数组下标修改 //注意 0 <= 数组下标值 < len-1 const char* s = s1.c_str();//得到s1的地址 string s2 = "loveyangruyu"; cout << (s1 == s2) << endl;//利用==,<,>符号进行字典序比较返回0,1 cout << (s1 < s2) << endl; cout << (s1 > s2) << endl; string s3; s3 = s1 + s2;//+字符串拼接 cout << s3<<endl;//直接输出 s3 = s1 + "lovwyou"; cout << s3 << endl; s3 = "yangruyulove" + s1; cout << s3 << endl; return 0; }
vector
//可扩展的数组,超级好用
#include<cstdlib> #include<assert.h> #include<time.h> #include<math.h> #include<string> #include <string.h> #include<vector> #include<queue> #include<stack> #include<iostream> using namespace std; int main() { //vector的简单使用 vector<int> iar = { 12,23,34,45,56,67,78,89,90,100 }; int n = iar.size();//数组元素个数 for (int i = 0; i < n; i++)//利用数组下标访问输出 { cout << iar[i] << ""; } iar.push_back(100);//尾部添加元素 vector<int>::iterator it;//迭代器 it= iar.begin();//返回头部元素的迭代器 for (; it != iar.end(); ++it) { cout << *it << endl; } it= iar.end();//返回尾部元素的迭代器 int a=iar.back();//得到尾部元素//返回其引用 int b = iar.front();//得到头部元素//返回其引用 iar.clear();//清空vector return 0; }
标签:函数,第六课,int,s1,基础,C++,字符串,include,cout 来源: https://www.cnblogs.com/327541575qq/p/14253004.html