![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 52
C++学习
Better-ing
这个作者很懒,什么都没留下…
展开
-
Leetcode136. 只出现一次的数字(有趣的异或)
Leetcode136. 只出现一次的数字题目描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例:输入: [2,2,1]输出: 1输入: [4,1,2,1,2]输出: 4解答我的解答: 排序+遍历class Solution {public: int singleNumber(vector<int>& nums) {原创 2021-10-22 16:12:25 · 501 阅读 · 0 评论 -
Leetcode1318. 或运算的最小翻转次数
Leetcode1318. 或运算的最小翻转次数题目描述给你三个正整数 a、b 和 c。你可以对 a 和 b 的二进制表示进行位翻转操作,返回能够使按位或运算 a OR b == c 成立的最小翻转次数。「位翻转操作」是指将一个数的二进制表示任何单个位上的 1 变成 0 或者 0 变成 1 。题目详情见: https://leetcode-cn.com/problems/minimum-flips-to-make-a-or-b-equal-to-c我的解答://计算二进制中1的个数int原创 2021-10-15 23:26:57 · 143 阅读 · 0 评论 -
数据结构之链表
链表一、反转链表1、描述2、思路3、代码实现二、链表的定义1、定义2、代码实现一、反转链表1、描述描述: 输入一个链表,反转链表后,输出新链表的表头。示例:输入:{1,2,3}返回值:{3,2,1}2、思路借用牛客网的图:其实就是两条链表:一条原来的,一条新的,新的是不断从老的上面拆下来的头节点作为新链表的头节点。3、代码实现注意: 代码的头节点相当于第一个节点(带数据)/*struct ListNode { int val; struct ListNode *next;原创 2021-08-07 16:28:43 · 79 阅读 · 0 评论 -
C++:类模板
C++:类模板(仅作学习复习记录)一、类模板作用:建立一个通用类,类中的成员数据类型可以不具体制定,用一个虚拟的类型来代表。template<typename T>#template:声明创建模板#typename:表明其后面是一种符号类型,可以用class代替#T:通用的数据类型,名称可以替换二、类模板与函数模板区别:1、类模板没有自动类型推导的使用方式2、类模板在模板参数列表中可以有默认参数例子:#include<string>template<原创 2020-12-02 17:08:51 · 307 阅读 · 0 评论 -
队列实现杨辉三角形
#include <iostream>#include <queue>using namespace std;int main(){ queue<int> yh; int n; cout << "how many lines do you want to see?" << endl; cin >> n; i...原创 2020-03-17 16:29:26 · 183 阅读 · 0 评论 -
学生信息管理系统
学生信息管理系统一个期末作业,做的比较急,只有基本功能。一、综合设计要求为了熟练使用C++面对对象的相关知识,设计一个功能较为完善的学生信息管理系统。需要涵盖如下设计要点:1、 设计语言:C++;2、 设计平台为:Win32控制台应用程序或MFC对话框应用程序;3、 开发平台:VC6.0 或 VS2010及各种版本,Ubuntu下的各种IDE设计环境,等等。4、 程序结构:多文件结构...原创 2020-01-02 16:01:39 · 897 阅读 · 3 评论 -
C++ 车类继承
C++实验,用到的知识点:继承派生,虚继承,图形化1、自行车类的虚基类为车辆类,机动车类的虚基类也为车辆类,摩托车类的基类为自行车类和机动车类,类之间均为公有继承。(1)根据上面各类间关系的描述,补全下面程序段中空缺的代码;(2)实现程序中声明的成员函数,注意相应操作中的动作发生的条件不能满足时应给出提示。(3)运行主程序,享受开摩托的过程,要实时图形化显示摩托车的位置信息(需要修改本案...原创 2020-01-12 18:41:20 · 1131 阅读 · 0 评论 -
从字符串S中删除所有和字符串t相同的子串
#include<iostream>#include<string>using namespace std;void move(string *s, int index){ int len = s->length(); for (int i = index; i < len; i++) { (*s)[i] = (*s)[i + 1]; }...原创 2020-03-31 14:38:08 · 3851 阅读 · 0 评论 -
C++函数模板
函数模板案例通过案例来熟悉函数模板描述:利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序排序规则从大到小,排序算法为选择排序分别利用char数组和int数组进行测试//1 交换的函数模板template<typename T>void swap(T& a,T& b){ T temp=a; a=b; b=temp;}//2 选择排序 大->小template<class T>void sort(T arr[],int原创 2020-11-09 10:43:46 · 102 阅读 · 0 评论 -
STL学习1:vector容器
意义:C++的面向对象和泛型编程思想,目的就是复用性的提升,大多情况下,数据结构和算法都未能有一套标准,导致被迫从事大量重复工作,为了建立数据结构和算法的一套标准,诞生了STL。基本概念:STL 从广义上分为: 容器(container) 算法(algorithm) 迭代器(iterator)容器和算法之间通过迭代器进行无缝连接。STL 几乎所有的代码都采用了模板类或者模板函数。STL六大组件STL大体分为六大组件,分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器**容器:**原创 2020-10-26 09:50:55 · 77 阅读 · 0 评论 -
哈夫曼树学习与总结(C++实现)
哈夫曼树C++代码实现#include<iostream>#include <stdlib.h>#include <stdio.h>#include <malloc.h>#include <string.h>#include <ctype.h>using namespace std;struct huff{ char c;//字符 int data;//权值 int lch, rch,p;//左右孩子节点在数原创 2020-08-23 13:32:23 · 1950 阅读 · 0 评论 -
C++ 中1.声明一个类的函数,提示与头文件声明不兼容 2.未定义标识符string
C++ 中声明一个类的函数,提示与头文件声明不兼容我遇到的情况是重复包含了头文件解决方法:删掉该.cpp中多余的声明的头文件即可。原创 2019-12-26 19:12:23 · 14259 阅读 · 3 评论 -
C/C++:指针数组和数组指针
指针数组和数组指针指针数组: 即用于存储指针的数组,也就是数组元素都是指针int *p[n]: []优先级高,先与p结合成为一个数组,再由int*说明这是一个整型指针数组,它有n个指针类型的数组元素。这里执行p+1时,则p指向下一个数组元素,这样赋值是错误的:p=a;因为p是个不可知的表示,只存在p[0]、p[1]、p[2]...p[n-1],而且它们分别是指针变量可以用来存放变量地址。但可以这样 *p=a; 这里*p表示指针数组第一个元素的值,a的首地址的值。数组指针: 即指向数组的指针 。int原创 2020-06-20 00:35:11 · 389 阅读 · 0 评论 -
C++学习记录(二)
(记录学习中遇到的问题,仅做笔记)11、宏定义#define add(a,b) a+bint main() { printf("%d\n",3 * add(4,7)); return 0;}结果为:34+7=19解析:==在 C/C++ 中,宏定义只是做简单的字符替换;#define add(a,b) a+b , a+b 没有括号,所以 3 add(4,7) 实际的替换情况是: 34+7=19 ;若 a+b 有括号, #define add(a,b) ( a+b )则结果为: 3 (原创 2020-06-10 15:31:56 · 593 阅读 · 0 评论 -
C++学习记录(一)
(记录学习中遇到的问题,仅做笔记)1、纯虚函数的正确声明:virtual void print()=02、常对象#include<iostream>using namespace std;class Sample{ public: Sample(int i,int j){ x=i; y=j; } void disp(){ cout<<"disp1"<<endl; } void disp()const{ cout<<"disp2"原创 2020-05-15 23:57:52 · 458 阅读 · 0 评论 -
STL- 常用算法(二)
STL- 常用算法(仅作学习笔记)四、常用拷贝和替换算法掌握常用的拷贝和替换算法copy // 容器内指定范围的元素拷贝到另一容器中replace // 将容器内指定范围的旧元素修改为新元素replace_if // 容器内指定范围满足条件的元素替换为新元素swap // 互换两个容器的元素1、copy将容器内指定范围的元素拷贝到另一容器中copy(iterator beg, iterator end, iterator dest);// 按值查找元素,找到返回指定位置迭代器,找不到原创 2020-05-14 00:29:49 · 101 阅读 · 0 评论 -
STL- 常用算法(一)
STL- 常用算法算法主要是由头文件 组成。(仅作学习笔记)<algorithm>是所有STL头文件中最大的一个,范围涉及到比较、 交换、查找、遍历操作、复制、修改等等<numeric>体积很小,只包括几个在序列上面进行简单数学运算的模板函数<functional>定义了一些模板类,用以声明函数对象。常用遍历算法for_each //遍历容器...原创 2020-04-27 23:02:25 · 117 阅读 · 0 评论 -
C++STL学习:set容器
#set/ multiset 容器一、set基本概念所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现。set和multiset区别:set不允许容器中有重复的元素multiset允许容器中有重复的元素set构造和赋值set<T> st; //默认构造函数:set(const set &st); //拷贝构造函数...原创 2020-04-16 18:29:22 · 204 阅读 · 0 评论 -
C++ STL学习:map容器
一、map容器基本知识1、基本概念:·map中所有的元素都是pair·pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)·所有元素都会根据元素的键值自动排序·头文件是2、本质:·map/multimap属于关联式容器,底层结构使用二叉树实现。3、优点:·可以根据key值快速找到value值map和multimap的区别:·map不允许容器中有重...原创 2020-01-13 16:48:35 · 185 阅读 · 0 评论 -
C++之函数对象(仿函数)和谓词
函数对象(仅作学习笔记)函数对象概念重载函数调用操作符的类,其对象常称为函数对象函数对象使用重载的()时,行为类似函数调用,也叫仿函数本质:函数对象(仿函数)是一个类,不是一个函数特点:函数对象在使用时,可以像普通函数那样调用, 可以有参数,可以有返回值函数对象超出普通函数的概念,函数对象可以有自己的状态函数对象可以作为参数传递示例:#include <string&...原创 2020-04-22 21:14:23 · 392 阅读 · 0 评论 -
C++之内建函数对象
内建函数对象STL内建了一些函数对象:算术仿函数关系仿函数逻辑仿函数这些仿函数所产生的对象,用法和一般函数完全相同使用内建函数对象,需要引入头文件 #include一、算术仿函数功能描述:实现四则运算其中negate是一元运算,其他都是二元运算仿函数原型:template<class T> T plus<T> //加法仿函数template<cl...原创 2020-04-25 13:16:49 · 228 阅读 · 0 评论