![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 63
C++的一些知识点。C与C++的比较
赵铁蛋
这个作者很懒,什么都没留下…
展开
-
C++--手动实现循环队列(数组+链表)
代码】C++--手动实现循环队列(数组+链表)原创 2022-08-03 22:01:31 · 405 阅读 · 1 评论 -
字典树(C++)
Trie树,即字典树,是一种哈希树的变种。是一种用于快速查询某个字符串/字符前缀是否存在的数据结构。它的优点是最大限度地减少无谓的字符串比较,查询效率比哈希表高。核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。...原创 2022-07-17 11:15:45 · 4690 阅读 · 0 评论 -
C++--力扣5 最长回文子串(动规)
题目描述给你一个字符串 s,找到 s 中最长的回文子串。输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。题目链接:力扣5–最长回文子串思路分析及答案除去单个字符一定是回文串,剩下分成两种子串。一种是长度为2或者3的子串,这种只需要判断首尾字符是否相等,因为长度为2的子串首尾相等则肯定是回文串,不相等就不是。长度为3的子串若首尾相等则一定也是回文子串,因为中间只有一个字符。另一种是长度大于3的子串,若首尾元素s[ i ]和s[ j ]不同,则该子串肯原创 2022-03-12 22:57:43 · 942 阅读 · 0 评论 -
C++---算法学习笔记之动态规划(一)入门
动归定义:分治思想的延伸,通俗一点来说就是大事化小,小事化无的艺术。在将大问题化解为小问题的分治过程中,保存对这些小问题已经处理好的结果,并供后面处理更大规模的问题时直接使用这些结果。动归的三个特点:把原来的问题分解成了几个相似的子问题。所有的子问题都只需要解决一次。储存子问题的解。动归的四个本质(重要)状态定义状态间的转移方程定义状态的初始化返回结果...原创 2020-06-29 19:58:31 · 1125 阅读 · 1 评论 -
C++实现斐波那契的三种方法
题目描述写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。做题链接:力扣–斐波那契数1.法一:迭代class Solution原创 2022-03-10 16:55:57 · 8243 阅读 · 0 评论 -
C++中对字符串s[0]赋值失败,size()恒为0的解决方法
1.错误场景s初始为空串,其size为0,s[0]是无效的,该访问方式也不合法。#include <iostream>#include <string>using namespace std; int main(){ string s; cout << "size:" << s.size() << endl; s[0]='f'; cout << "size:" << s.size() <<原创 2022-03-09 19:56:18 · 1351 阅读 · 0 评论 -
C/C++---牛客错题归纳(持续更新)
1.C语言基础1.没想到的新新鲜题解析:2.C++基础原创 2022-03-04 23:46:45 · 9150 阅读 · 0 评论 -
C++力扣2--两数相加(思路及代码)
1.题目描述给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。2. 思路及代码一开始我固定思维模式,觉得数一定要是高位到低位的排序模式,再从个位开始取。但是由于是单链表,就算逆置链表以后,找到链表最后一个节点,再找导数第二个相加的结点也不现实。后来我发现题目还省力了,低位刚好在链表头,所以可以直接从链表头开始遍历原创 2022-03-04 12:05:06 · 580 阅读 · 0 评论 -
关于jsoncpp使用时报错Use StreamWriterBuilder instead
1.jsoncpp相关情况交代github地址配置教程测试代码2.错误情况展示在vs2017下测试后报错如图所示:3.解决方法怀疑是新旧版API的不兼容问题,参考博客新旧版API解决方法使用解决方案1后,依然报错,出现c++异常:std::length_error,断言崩溃等如图。但是长度并不存在越界,最后在jsoncpp的github项目中的issuse找到了解决方案,详细见inssue(#815)具体需可参考这两位提供的解决方式,根据自己的情况更改一些代码。我解决后的代码如原创 2021-06-05 13:04:39 · 1356 阅读 · 0 评论 -
C++实现从.txt文件中读取数据存入数组,将数组数据写入.txt文件
声明:编译器:vs2017所有用到的.txt文件都是提前放在当前工程目录下的。1.从.txt文件中读取数据,并存入数组#include <iostream>#include <fstream>#include<vector>using namespace std;int main(){ //读取数据文件 ifstream in("datadata.txt", ios::in); if (!in.is_open()) { cout原创 2021-04-29 15:19:03 · 30102 阅读 · 22 评论 -
C++--unordered系列关联式容器简单介绍及应用代码
声明:本人所有测试代码环境都为vs2017本文目录1. unordered_map2. unordered_multimap3. unordered_set4. unordered_multiset5. 解题应用在 C++11 中,STL 提供了 4 个 unordered 系列的关联式容器,这四个容器底层结构都是哈希桶,所以查找效率都非常快(O(1))。分别是:unordered_map 、...原创 2020-04-05 17:42:00 · 387 阅读 · 0 评论 -
C++蓝桥杯试题集基础练习VIP BASIC 14-30思路解析及代码
本文目录BASIC-24 龟兔赛跑预测BASIC-25 回形取数BASIC-26 报时助手BASIC-27 2n皇后问题BASIC-28 Huffuman树BASIC-29 高精度加法BASIC-30 阶乘计算BASIC-24 龟兔赛跑预测题目描述问题描述 兔子与乌龟的比赛中,一旦任一秒结束后兔子发现自己领先t米或以上,它们就会停下来休息s秒。对于不同的兔子,t,s...原创 2020-04-30 10:33:23 · 648 阅读 · 0 评论 -
错误:error C2678: 二进制“运算符”: 没有找到接受“XXX”类型的左操作数的运算符(或没有可接受的转换)解决方法
我是重载运算符的时候,出现了这个错误。代码环境为vs2017.出错代码如下:报错:经过一些查阅对比,我发现,当使用该操作符时,传入的操作数可能是const类型的,但是我重载函数里的形参是非const类型的,所以就会导致报错。解决方法:将形参改为const类型参数即可。这里const主要有两个作用:可以使得该函数既可以接收非const类型参数,又可以接收const类型参数。函数...原创 2020-03-12 14:57:32 · 14303 阅读 · 5 评论 -
C++ 哈希表构造及解决哈希冲突的代码实现
声明:本人所有测试代码环境都为vs2017本文目录:哈希的引入及概念哈希表的构造哈希冲突的产生解决哈希冲突的方法及代码实现一.哈希的引入及概念引入:当在顺序结构(如数组)或者平衡树(平衡二叉树)中查找一个元素时,必须要经过多次与内部元素进行比较的过程,顺序结构的查找时间复杂度为O(N),平衡树的查找时间为Olog(N),其查找的效率都取决于查找过程中元素的比较次数。概念:那么相...原创 2020-03-09 18:40:45 · 3149 阅读 · 0 评论 -
C++中大小写转换的几种方式
附上力扣原题链接https://leetcode-cn.com/problems/to-lower-case/1.常规法遍历字符串,将大写的字母ASCII码加上32,小写字母ASCII码减去32即可。#include<iostream>#include<string>using namespace std;class Solution {public: ...原创 2020-01-15 19:29:19 · 16666 阅读 · 0 评论 -
C++ 实现 二叉搜索树
1.二叉搜索树的特性1.对于任意节点,比其左子树中任意节点都大,比其右子树中任意节点都小。2.最左侧的节点一定是最小的,最右侧的节点一定是最大的。3.中序遍历:是一个有序序列。2.二叉搜索树的模拟实现首先需要一个节点的结构体,里面包含一个节点所拥有的指向左孩子右孩子的指针pleft和pright,还有当前节点的数据域data这里我准备在二叉搜索树中实现这几个接口:查找,插入,删除,...原创 2020-01-06 16:01:52 · 882 阅读 · 0 评论 -
C++之多态总结
一.多态的引入二.多态的概念原创 2020-01-01 15:17:30 · 309 阅读 · 0 评论 -
C++之继承总结
一.继承的概念1.什么是继承?专业术语:继承机制是一种面向对象程序设计可以使代码复用的重要手段,允许程序员在保持原有类特性的基础上进行扩展,是类和类之间的一种关系。举个例子:继承好比汽车与奥迪、奥拓之间的关系,也叫父子关系。汽车是父类,奥迪和奥拓成为派生类(或子类)。子类可以继承父类的属性,也可以新增加自己独特的属性。奥迪和奥拓都继承了汽车有四个轮子,可以载人,可以加油驱动的属性,然而奥迪又...原创 2019-11-09 16:46:23 · 469 阅读 · 0 评论 -
牛客--替换空格
题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。整体思路1.因为字符串变化后字符个数肯定会增多,所以要开辟一个新数组。又因为每一个空格都会使得字符串字符数+2,所以长度为原长度+空格数*2.2.从后往前拷,两个指针分别遍历两个数组,在原数组碰到空格时,新数组从后往前依次放入...原创 2019-10-27 20:57:43 · 151 阅读 · 0 评论 -
size_t和int的区别
(1)size_t和intsize_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的真实类型与操作系统有关。在32位架构中被普遍定义为:typedef unsigned int size_t;而在64位架构中被定义为:typedef unsigned long size_t;size_t在32位架构上是4字节,在64位架构上是8字节...转载 2019-10-27 18:13:31 · 760 阅读 · 0 评论 -
牛客网-- 二维数组中的查找
题目描述在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路分析我的思路比较简单粗暴,既然是有规律数组,那就按照它的规律来。大概核心思路如下图:细节注意本题的二维数组传参是以vector里套vector的形式给出来的,所以一定要熟悉关于vec...原创 2019-10-23 00:22:35 · 193 阅读 · 0 评论 -
C/C++内存管理---new和delete
一、new/delete 简介new 和 delete 是 C++ 用于管理堆内存的两个运算符,对应于 C 语言中的 malloc 和 free,但是 malloc 和 free 是函数。除此之外,在操作自定义类型时,new在申请内存的同时,会调用对象的构造函数 delete在释放内存之前,会调用对象的析构函数,清理对象中的资源。而malloc只会申请内存,free只会释放内存。new 运...原创 2019-09-23 14:41:39 · 197 阅读 · 0 评论