![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
c++学习笔记
most delay
这个作者很懒,什么都没留下…
展开
-
C++学习第二十五天(函数对象即仿函数)
函数对象在使用时,可以像普通函数那样调用,可以有参数,可以有返回值;函数对象超出普通函数的概念,函数对象可以有自己的状态;函数对象可以作为参数传递。原创 2023-07-21 21:28:36 · 152 阅读 · 0 评论 -
C++学习第二十四天(map容器)
map和multimap的区别:map不允许容器中有重复的key值,multimap允许。本质:map/multimap属于关联式容器,底层结构是用二叉树实现。优点:可以根据key值快速找到value值。map容器插入和删除。map容器查找和统计。原创 2023-07-18 18:54:05 · 223 阅读 · 0 评论 -
C++学习第二十三天(set/multiset容器)
set大小和交换:set容器没有resize接口,因为他允许有重复的元素,如果重置大小,则默认用0补齐是不成立的。本质:set/multiset容器属于关联式容器,底层结构是用二叉树实现的。区别:set不允许容器中有重复的元素;multiset允许有重复的元素。pair对组即成对出现的数据,利用对组可以返回两个数据。set容器排序:主要利用仿函数,改变排序规则。基本概念:所有元素都会在插入时自动排序。set容器排序,存放自定义类型。原创 2023-07-14 17:46:21 · 220 阅读 · 0 评论 -
C++学习第二十三天(stack、queue、list容器)
且有一个重要的性质,插入和删除操作都不会造成原有list迭代器失效,这在vector容器中是不成立的,因为如果插入数据太多,vector容器会找一个新的地址空间将数据存放进去。stl中的链表是一个双向循环链表(一个指针域有两个指针一个指向前一个结点的地址另一个指向后一个结点的地址,且第一个结点和最后一个结点是连通的)。list容器不支持下标访问([])和跳跃式访问(at),原因是因为list本质是链表,不是用连续线性空间存储数据,迭代器也不支持随即访问的。默认构造函数:stack stc;原创 2023-07-13 20:51:31 · 200 阅读 · 0 评论 -
C++学习第二十二天(deque容器及案例)
deque容器大小操作。deque容器数据存取。deque容器的删除。原创 2023-07-11 20:34:14 · 114 阅读 · 0 评论 -
C++学习第二十一天(vector容器)
vector容器的构造示例。原创 2023-07-11 15:00:08 · 91 阅读 · 0 评论 -
C++学习第二十天(初识STL之容器)
string的比较:主要用于比较两个字符串是否相等。容器、算法、迭代器件、仿函数、适配器、空间适配器。2.1 vector存放自定义数据类型。string的赋值方式:示例。string字符串拼接:示例。string字符插入和删除。string查找和替换。1.1STL六大组件。string字符存取。原创 2023-07-10 20:16:40 · 174 阅读 · 0 评论 -
C++学习第十九天(类模板)
hpp文件(实际就是将.cpp和.h文件和在一起)原创 2023-07-09 16:46:53 · 98 阅读 · 0 评论 -
C++学习第十八天(函数模板)
利用函数模板封装一个排序的函数,可以对不同数据类型进行排序(算法为选者排序)从大到小排序,分别利用char数组和int数组进行测试。总结:既然提供了函数模板,就不要提供普通函数,以免出现二重性。学习模板并不是为了写模板,而是在STL能够运用系统提供的模板。·函数模板调用时,如果利用自动类型推导,不会发生隐士类型转换。额外话:利用具体化的模板,可以解决自定义类型的通用化;·如果函数模板和普通函数都可以实现,优先调用普通函数。·如果函数模板可以产生更好的匹配,优先调用函数模板。·函数模板也可以发送重载。原创 2023-07-08 22:02:10 · 226 阅读 · 0 评论 -
C++学习第十六天(友元函数)
【代码】C++学习第十六天(友元函数)原创 2023-07-04 21:44:50 · 40 阅读 · 0 评论 -
C++学习第十五天类和对象之对象特性
C++空指针也是可以调用成员函数的,但是也要注意到有没有用到this指针;·成员属性声明时加上关键字mutable后,在常函数中就可以修改了。如果用到this指针,需要加以判断保证代码的健壮性。·成员函数后加const后我们称这个函数为常函数。2.const修饰成员函数。·常函数不可以修改成员属性。1.空指针访问成员函数。·常对象只能调用常函数。原创 2023-07-02 21:11:05 · 111 阅读 · 0 评论 -
C++学习第十四天(类和对象,对象模型和this指针)
1.成员变量和成员函数分开存储#include <iostream>using namespace std;//成员变量和成员函数是分开存储的class Person{ int m_a;//非静态成员变量 属于类的的对象 static int m_b;//静态成员变量(类内定义类外声明) 不属于类对象上 void func() {}//非静态成员函数,不属于类对象上 static void func2() {}//静态成员函数,不属于类的对象上};int Person::原创 2021-10-08 22:55:34 · 102 阅读 · 0 评论 -
C++学习第十三天(类和对象,对象的初始化和清理)
1.对象的初始化(构造函数)和清理(析构函数)(1)构造函数:主要作用用于创建对象时为对象的成员属性赋值,构造函数由编译器自动调用。(2)析构函数:主要作用在于对对象销毁前系统自动调用,执行一些清理工作。注意:对象的初始化和清理工作是编译器强制我们要做的事情,因此如果我们不提供这两个函数,编译器会提供编译器的这两个函数是空实现。2.这两个函数的用法(1)构造函数语法:类名(){}a.构造函数没有返回值也不写voidb.函数名与类名相同c.构造函数可以有参数,因此可以发生重载d.程序在调用对原创 2021-09-18 21:26:04 · 106 阅读 · 0 评论 -
学习C++的第十二天(封装)
1.什么是封装封装是C++面向对象三大特征之一2.封装的意义将属性和行为作为一个整体,表现生活中的事物将属性和行为加以权限控制3.封装的语法class 类名(访问权限:属性 / 行为)4.示例设计一个园类,求元的周长#include <iostream>using namespace std;//圆周率const double PI = 3.14;//设计一个圆类,球员的周长class Circle{ //访问权限 //公共权限public: //属性(原创 2021-09-03 00:47:57 · 93 阅读 · 0 评论 -
学习C++的第十一天(引用)
1.引用的作用:给变量名起别名2.语法:数据类型 &别名 = 原名#include <iostream>using namespace std;int main(){ int a = 10; int &b = a; cout << "a=" << a << endl; //10 cout << "b=" << b << endl; //10 b = 100; cout <<原创 2021-08-28 16:59:02 · 51 阅读 · 0 评论 -
学习C++的第10天(程序的内存模型-内存四区)
1.内存分区模型(1)代码区:存放函数体的二进制代码,由操作系统进行管理代码区是共享的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份即可,代码区是只读的。(2)全局区:存放全局变量静态变量以及常量这个区域的数据在程序介绍后被系统释放#include <iostream>using namespace std;int g_a = 10;int g_b = 20;const int g_c = 30;const char g_arr[] = "asdj12";in原创 2021-08-27 00:33:46 · 58 阅读 · 2 评论 -
学习c++第九天(通讯录系统)
#include <iostream>#include <string>using namespace std;#define MAX 1000struct person{ //姓名 string m_Name; //性别:1代表男 2代表女 int m_Sex; //年龄 int m_Age; //电话 string m_Phone; //地址 string m_Addr;};struct books{ //通讯录中保存的联系人数字 s原创 2021-08-26 11:34:35 · 100 阅读 · 0 评论 -
学习C++的第八天(结构体)
1.结构特的定义与使用#include <iostream>#include <string>using namespace std;struct student{ string name; int age; double score;}s3;int main(){ //定义一 //struct student s1; student s1; //c++中结构体在创建变量时关键字可以省但在定义是不能省 s1.age = 17; s1.name =原创 2021-08-23 21:17:36 · 61 阅读 · 0 评论 -
学习c++的第七天(指针)
1.空指针指针变量,指向内存编号为0的空间,一般用于初始化指针变量#include <iostream>using namespace std;int main(){ int a = 10; int *p = NULL; //*p = 100; //空指针不能直接访问 p = &a; cout << *p << endl; system("pause"); return 0;}2.野指针指针变量指向非法的内存空间#inclu原创 2021-08-22 14:32:37 · 80 阅读 · 0 评论 -
学习C++的第六天(函数)
1.加法函数的实现#include <iostream>using namespace std;int add(int a, int b){ int sum = a + b; return sum;}int main(){ int c = add(123,432); cout << c << endl; system("pause"); return 0;}2.值传递#include <iostream>using n原创 2021-08-21 23:55:51 · 40 阅读 · 0 评论 -
学习C++的第五天(数组的使用)
1.数组的定义#include<iostream>using namespace std;int main(){ int i; int arr1[5] = {10,20,30}; //未初始化的默认为0 int arr2[] = { 123,45,564,8,679, }; for (i = 0; i < 5; i++) { cout << "arr" << i << arr1[i] << endl; cout &原创 2021-08-21 17:06:38 · 99 阅读 · 0 评论 -
C++学习第四天(循环语句、跳转语句)
1.while循环小练习#include <iostream>#include <ctime>using namespace std;int main(){ //添加随机数种子,作用:利用当前系统时间生成随机数,防止每次生成随机数相同 srand((unsigned int)time(NULL)); //包含头文件ctime int i = rand() % 100 + 1; //生成一个0-99+1的随机数 int value; while (1) {原创 2021-08-16 19:38:24 · 174 阅读 · 0 评论 -
C++学习第三天笔记
1.逻辑运算符#include <iostream>using namespace std;int main(){ int a = 10; cout << !a << endl; cout << !!a << endl; //这也是一种简单的非零数字转换成1的方法 cout << (a && b) << endl; //不打括号报错 cout << (a || b) &l原创 2021-08-15 21:20:27 · 66 阅读 · 0 评论 -
C++学习笔记(第二天)
1.字符型变量#include <iostream>using namespace std;int main(){ char a = 'd'; cout << a << endl; cout << "字符类型的大小是:" << sizeof('d') << endl; cout << "字符类型的大小是:" << sizeof('a') << endl; cout <<原创 2021-08-14 22:41:37 · 112 阅读 · 0 评论 -
学习c++的第一个代码(第一天)
#include <iostream>using namespace std;int main(){ //第8行代码的含义就是在屏幕中输出hello world cout << "hello world" << endl; //这里endl是换行的意思 system("pause"); return 0;}变量的定义与打印:#include <iostream>using namespace std;int main(){原创 2021-08-13 21:39:38 · 950 阅读 · 0 评论