ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++基础第六课

2021-01-09 21:32:15  阅读:153  来源: 互联网

标签:函数 第六课 int s1 基础 C++ 字符串 include cout


一、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***********

 

  1.  

                                                               

 

字符数组

字符串常量

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有