C++基础第六课
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++基础第六课,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2886字,纯文字阅读大概需要5分钟。
内容图文
![C++基础第六课](/upload/InfoBanner/zyjiaocheng/612/718d9fa5e7194d6380966f0b45af68ce.jpg)
一、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; }
内容总结
以上是互联网集市为您收集整理的C++基础第六课全部内容,希望文章能够帮你解决C++基础第六课所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。