![](https://img-blog.csdnimg.cn/20210727172228178.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C/C++
C/C++编程
顾道长生'
时人不识凌云木,直待凌云始道高。
展开
-
字符串拆分之istringstream、分割url获取各项参数值
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含这个头文件。istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C风格的串流的输出操作。strstream类同时可以支持C风格的串流的输入输出操作。 istringstream的构造函数原形如下:istringstream::istringstream(string str);该构造函数只能拆分以空格分割的字符串,其余分.原创 2021-12-23 19:12:08 · 516 阅读 · 0 评论 -
OpenGL进阶(一)第一个OpenGL程序
OpenGL另一个最本质的概念叫做着色器,它是图形硬件设备所执行的一类特殊函数。OpenGL在其内部包含了所有的编译器工具,可以直接从着色器源代码创建GPU所需的编译代码并执行。在OpenGL中会用到六种不同的着色阶段,不过,最常用的是顶点着色器和片元着色器,前者处理顶点数据,后者处理光栅化后的片元数据。完整代码如下://///// triangles.cpp///// //---------------------------------------------------------原创 2021-12-09 08:55:28 · 597 阅读 · 0 评论 -
vs2010中实现sqlite数据库的增删改查
文章目录一、下载所需安装包二、生成sqlite3.lib文件并添加到vs中三、创建数据库四、测试样例:一、下载所需安装包官网地址:http://www.sqlite.org/download.html下载 sqlite-dll-win32-x86-3080803.zip,解压缩后里面有两个文件:sqlite3.dll和sqlite3.def。下载 sqlite-amalgamation-3080803.zip,解压缩后里面有4个文件:sqlite3.h、sqlite3ext.h、shell.c.原创 2021-11-21 14:56:23 · 1395 阅读 · 2 评论 -
初识OpenGL
文章目录前置知识:核心模式和渲染模式:状态机:对象OpenGL上下文(Context)帧缓冲区(FrameBuffer)附着(Attachment)纹理(Texture)和渲染缓冲区(RenderBuffer)顶点数组(VertexArray)和顶点缓冲区(VertexBuffer)索引数组(ElementArray)和索引缓冲区(ElementBuffer)OpenGL渲染管线OpenGL语法简介附加资源:前置知识:由于OpenGL是一个图形API,并不是一个独立的平台,它需要一个编程语言来工作,.原创 2021-11-21 14:42:12 · 881 阅读 · 0 评论 -
【手撕反向传播】反向传播推导及代码实现
文章目录理论手推过程代码实现理论理论层面看我以前的博文:(2020李宏毅)机器学习-Backpropagation手推过程单个神经元三层的神经网络(input layer+hidden layer+output layer)损失函数(MSE损失):链式法则(chain rule )求梯度:手推过程如下:ps:sigmoid函数求导参考我的博文激活函数Sigmoid求导代码实现如果想深入理解反向传播,那就需要代码实现,不然理论只是空中楼阁,而C++语言偏底层一些.原创 2021-10-13 09:37:50 · 676 阅读 · 0 评论 -
c++中编程遇到的一些问题
基本定义:重载的运算符是具有特殊名字的函数:它们的名字由关键字 operator 和其后要定义的运算符号共同组成。重载的运算符包括:返回类型、参数列表以及函数体类型转换运算符(conversion operator)是类的一种特殊成员函数,它负责将一个类类型的转换为其他类型。类型转换函数的一般形式如下所示:operator type() const; //其中type表示某种类型。注意:当一个重载的运算符是成员函数时,this绑定到左侧的对象,成员运算符函数的参数比运算对象的参数少一个.原创 2021-08-06 18:32:46 · 3506 阅读 · 0 评论 -
c++枚举
一、枚举类型的定义枚举类型的定义:枚举类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举常量的集合。定义格式:枚举类型的定义格式为:enum <类型名> {<枚举常量表>};例如:enum color_set1 {RED, BLUE, WHITE, BLACK}; // 定义枚举类型color_set1enum week {Sun, Mon, Tue, Wed, Thu, Fri, Sat}; // 定义枚举类型week二、枚举声.原创 2021-07-27 21:12:50 · 22182 阅读 · 3 评论 -
数据结构:图的存储结构一
听了国嵌唐老师的课,用C语言实现如下:MGraph.c#include <stdlib.h>#include <stdio.h>#include "MGraph.h"typedef struct _tag_MGraph{ int count; MVertex** v; int ** matrix;}TMGraph;MGraph* MGraph...原创 2019-09-11 12:29:49 · 314 阅读 · 0 评论 -
数据结构:静态查找和动态查找
听了国嵌唐老师的课,用C语言实现:SearchDemo.c#include <stdio.h>#include <stdlib.h>#include <time.h>#include "SeqList.h"#define SIZE 20/* run this program using the console pauser or add your...原创 2019-09-25 10:00:49 · 850 阅读 · 0 评论 -
数据结构:静态查找(空间换时间,提升效率)
听了国嵌唐老师的课,用C语言实现:AnotherSearch.c#include <stdio.h>#include <stdlib.h>#include <time.h>#define SIZE 20/* run this program using the console pauser or add your own getch, system...原创 2019-09-25 10:50:23 · 387 阅读 · 0 评论 -
数据结构:由二分查找引出的插值查找
听了国嵌唐老师的课,用C语言实现:OrderSearch.c#include <stdio.h>#include <stdlib.h>#include <time.h>#define SIZE 20/* run this program using the console pauser or add your own getch, system(...原创 2019-09-25 11:38:08 · 193 阅读 · 0 评论 -
数据结构:二叉排序树
听了国嵌唐老师的课,用C语言实现:BSTree.c#include <stdio.h>#include <malloc.h>#include "BSTree.h"typedef struct _tag_BSTree TBSTree;struct _tag_BSTree{ int count; BSTreeNode* root;};static v...原创 2019-09-25 16:49:21 · 217 阅读 · 0 评论 -
数据结构:哈希表的实现
听了国嵌唐老师的课,用C语言实现:main.c#include <stdio.h>#include <stdlib.h>#include "Hash.h" /* run this program using the console pauser or add your own getch, system("pause") or input loop */s...原创 2019-09-25 17:38:27 · 298 阅读 · 0 评论 -
纯C的贪吃蛇游戏
代码结构Snake.c#include<stdio.h>#include<time.h>#include<Windows.h>#include<conio.h>#include"Snake.h"int main(){ srand((size_t)time(NULL)); CONSOLE_CURSOR_INFO cci; cci.dwSize=sizeof(cci); cci.bVisible = FALSE; SetConso原创 2021-01-15 20:59:48 · 166 阅读 · 0 评论 -
CXX0030:无法计算表达式的值
问题描述:vs2010外联qt 5.6.3编写qt代码,运行中出现CXX0030:无法计算表达式的值 原因分析:调用函数执行的空间不足,需要添加release()去释放如果是创建控件错误:项目环境配置问题,项目附加环境bin目录下dll文件可能没有注册,需要执行相应的文件在本地注册堆栈空间不足,在项目属性==>vc/c++目录中修改最大内存vs2010中外联qt,使用qt编程解决方案:一、安装所需软件下载安装VS2010;下载qt5.6.3安装包(32位),这里我们原创 2021-07-26 21:05:55 · 2235 阅读 · 0 评论 -
i++与++i的实现
//++i int & int::operator++(){ *this+=1; return *this;}//i++const int int::operator(int){ int oldValue=*this; ++*(this); return oldValue;}原创 2021-02-23 16:08:31 · 342 阅读 · 0 评论 -
剑指Offer 二维数组中的查找
解题思路开辟一个动态数组se,然后遍历array,将array中的数存入se中,然后遍历se,判断是否有targetACclass Solution {public: bool Find(int target, vector<vector<int> > array) { set<int> se; for(int i=0;i<array.size();i++) { .原创 2021-02-05 15:36:21 · 128 阅读 · 0 评论 -
剑指 Offer 64. 求1+2+…+n
解题思路此题考点为高中数学中的等差数列求和,Sn=n(a1+an)/2故直接return n*(n+1)/2代码class Solution {public: int sumNums(int n) { return n*(n+1)/2; }};原创 2021-02-01 08:35:58 · 116 阅读 · 0 评论 -
手写通用数组
实现一个通用的数组类,要求如下:可以对内置数据类型以及自定义数据类型的数据进行存储将数组中的数据存储到堆区构造函数中可以传入数组的容量提供对应的拷贝构造函数以及operator=防止浅拷贝问题提供尾插法和尾删法对数组中的数据进行增加和删除可以通过下标的方式访问数组中的元素可以获取数组中当前元素个数和数组的容量代码结构MyArray.hpp#pragma once#include<iostream>using namespace std;template<c原创 2021-01-21 10:16:57 · 113 阅读 · 0 评论 -
基于多态的职工管理系统
职工管理系统1、管理系统需求职工管理系统可以用来管理公司内所有员工的信息本教程主要利用C++来实现一个基于多态的职工管理系统公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责普通员工职责:完成经理交给的任务经理职责:完成老板交给的任务,并下发任务给员工老板职责:管理公司所有事务管理系统中需要实现的功能如下:退出管理程序:退出当前管理系统增加职工信息:实现批量添加职工功能,将信息录入到文件中,职工信息为:职工编号、姓名、部门编号显示原创 2021-01-19 18:33:13 · 531 阅读 · 0 评论 -
通讯录管理系统
通讯录管理系统系统需求通讯录是一个可以记录亲人、好友信息的工具。本教程主要利用C++来实现一个通讯录管理系统系统中需要实现的功能如下:添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人显示联系人:显示通讯录中所有联系人信息删除联系人:按照姓名进行删除指定联系人查找联系人:按照姓名查看指定联系人信息修改联系人:按照姓名重新修改指定联系人清空联系人:清空通讯录中所有信息退出通讯录:退出当前使用的通讯录#include<iostrea原创 2021-01-16 16:47:29 · 451 阅读 · 0 评论 -
深度理解:蓝白红旗问题
算法思想:顺序扫描线性表,将蓝色旗交换到线性表的最前面,红色旗交换到线性表的最后面。为此,设立三个指针,其中j为工作指针,表示当前扫描的元素,i以前的元素全为蓝色,k以后的元素全为红色,根据j所指元素的颜色,决定将其交换到序列的前部或尾部。初始时,i=0,k=n-1。notes:1)若遍历到的位置为BLUE,则说明它一定属于前部,于是就和i位置进行交换,然后j向前进,i也向前进(表示前边的已经都排好了)。2)若遍历到的位置为WHITE,则说明它一定属于中部,根据总思路,中部的我们都不动,然后j向前.原创 2020-10-23 16:13:07 · 691 阅读 · 0 评论 -
购票问题(回溯法)
#include<bits/stdc++.h>using namespace std;double a[100];int n,tot;void Print(){ int i=1; tot++; for(i=1;i<=2*n;i++) { if(i>1) { printf(","); } cout<<a[i]; } cout<<endl;}void find(int t,int sum1,int sum2){//.原创 2020-10-22 18:43:59 · 1052 阅读 · 6 评论 -
计数排序
代码实现://计数排序 #include<bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; int a[n],b[n],c[n]; for(int i=0; i<n; i++) cin>>a[i]; for(int i=0; i<n; i++) c[i]=0; for(int i=0; i<n-1; i++) { for(int j=i+1; j.原创 2020-08-02 18:58:20 · 116 阅读 · 0 评论 -
牛客网刷题第二天(C/C++)(总结)
1.一般我们把 short 称为短整型,把 long 称为长整型,把 long long 称为超长整型,把 int 称为整型。unsigned 打头的那些整数类型统称为无符号整型。例如:我们称 unsigned short 为无符号短整型。以此类推。不管是16位系统还是 32位 64位系统,sizeof(long)都等于42.不管指针是什么类型,在32位编译器下都是4字节,在64位下是8字...原创 2020-02-15 20:23:25 · 402 阅读 · 0 评论 -
牛客网刷题第一天(C/C++)(总结)
1.a=a+b; b=a-b; a=a–b; // 这种方式考虑溢出a ^= b; b ^= a; a ^= b; // 不需要考虑溢出 a ^= b, 此时 a 中记录了a和b两个数中,各个二进制位的异同情况,1表示不同,0表示相同。已知b和各个二进制位的异同情况a,则 b ^= a;可以求得a值,然后赋值给b,实现交换。2.认识逗号表达式的规则,逗号表达式值和类型又最...原创 2020-02-14 20:44:34 · 257 阅读 · 0 评论 -
操作系统:实验五 目录管理(选做)
实验五 目录管理一. 实验目的:通过编写一个简单的目录管理程序,实现主要的目录操作命令,加深操作系统对于文件目录管理方式的理解。二 . 实验指导:仿照DOS操作系统的目录管理,实现简单的目录管理命令,要求建立多级目录结构,可以将原操作系统的命令简化,各命令说明如下。(1)DIR命令格式:DIR功能:显示当前目录下的所有一级目录和文件(2)CD命令格式:CD 目录名功能:进入...原创 2020-01-03 20:34:44 · 1002 阅读 · 1 评论 -
算法:回溯算法之装载问题
问题描述:有一批共n个集装箱要装上2艘载重量分别为c1和c2的轮船,其中集装箱i的重量为wi,且,装载问题要求确定是否有一个合理的装载方案可将这些集装箱装上这2艘轮船。如果有,找出一种装载方案。 例如:当n=3,c1=c2=50,且w=[10,40,40]时,则可以将集装箱1和2装到第一艘轮船上,而将集装箱3装到第二艘轮船上;如果w=[20,40,40],则无法将这3个集装箱都装上轮船。基本...原创 2019-12-09 15:54:29 · 4901 阅读 · 0 评论 -
操作系统:实验一补充 进程调度算法(包含时间片轮转调度和多级反馈队列调度)
时间片轮转:时间片轮转算法的基本思想是,系统将所有的就绪进程按先来先服务算法的原则,排成一个队列,每次调度时,系统把处理机分配给队列首进程,并让其执行一个时间片。当执行的时间片用完时,由一个计时器发出时钟中断请求,调度程序根据这个请求停止该进程的运行,将它送到就绪队列的末尾,再把处理机分给就绪队列中新的队列首进程,同时让它也执行一个时间片。多级反馈队列调度:1、进程在进入待调度的队列等待时...原创 2019-11-15 15:26:28 · 2572 阅读 · 4 评论 -
操作系统:实验四 页面置换算法
一. 实验目的:1、通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。熟悉虚存管理的各种页面淘汰算法2、通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。二 . 实验指导:设计一个请求页式存储管理方案。并编写模拟程序实现之。流程图见下图。产生一个需要访问的指令地址流。它是一系列需要访问的指令的地址。为不失一般性,你可以适当地(用人工指定地方法或用随机数产生器)...原创 2019-11-15 15:17:19 · 3389 阅读 · 0 评论 -
操作系统:实验三 动态分区分配算法
一、实验目的用高级语言编写和调试一个内存连续分配中动态分区分配模拟程序,以加深对进程的概念及进程调度算法的理解.二、实验指导设计程序模拟内存动态分区分配流程,要求实现三项功能:分配内存、回收内存、显示内存使用情况内存连续分配动态分区分配流程图如下回收分区时应考虑分区合并的情况,三种情况,如下图三、提示设计程序模拟内存动态分区分配流程,要求如下1、内存分配表建议使用顺序表或者单链...原创 2019-11-15 15:12:10 · 10610 阅读 · 7 评论 -
操作系统:实验二 银行家算法
一、实验目的用高级语言编写和调试一个银行家算法程序,并可以利用银行家算法模拟分配资源以及进行安全性检查。加深对银行家算法的理解。二、实验指导银行家算法中的数据结构(1) 可利用资源向量Available。这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变。如果Available[j...原创 2019-11-15 15:04:08 · 7922 阅读 · 6 评论 -
算法:(选做)独立任务最优调度问题
用两台处理机A和B处理n个作业。设第i个作业交给A处理需要时间ai,交给B处理需要时间bi。由于各作业的特点和机器的性能关系,ai和bi之间没有明确的大小关系。既不能将一个作业分开由2台机器处理,也没有一台机器能同时处理2个作业。设计一个动态规划算法,使得这两台机器处理完这n个作业的时间最短。测试用例:6(任务数目)2 5 7 10 5 2(机器A处理这些任务的时间)3 8 4 11 3 ...原创 2019-11-11 16:01:39 · 2174 阅读 · 0 评论 -
算法:最优二叉搜索树
1、问题描速: 设 S={x1, x2, ···, xn} 是一个有序集合,且x1, x2, ···, xn表示有序集合的二叉搜索树利用二叉树的顶点存储有序集中的元素,而且具有性质:存储于每个顶点中的元素x 大于其左子树中任一个顶点中存储的元素,小于其右子树中任意顶点中存储的元素。二叉树中的叶顶点是形如(xi, xi+1) 的开区间。在表示S的二叉搜索树中搜索一个元素x,返回的结果有两种情形:...原创 2019-11-11 11:05:04 · 4282 阅读 · 0 评论 -
算法:0-1背包(跳跃点解法)
由m(i,j)的递归式容易证明,在一般情况下,对每一个确定的i(1≤i≤n),函数m(i,j)是关于变量j的阶梯状单调不减函数。跳跃点是这一类函数的描述特征。在一般情况下,函数m(i,j)由其全部跳跃点唯一确定。如图所示。对每一个确定的i(1≤i≤n),用一个表p[i]存储函数m(i,j)的全部跳跃点。表p[i]可依计算m(i,j)的递归式递归地由表p[i+1]计算,初始时p[n+1]={(0...原创 2019-11-10 08:54:11 · 6917 阅读 · 3 评论 -
操作系统:实验一 进程调度算法
实验一 进程调度算法一、实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解.二、实验指导设计一个有 N个进程共行的进程调度程序。 进程调度算法:分别采用先来先服务算法、短作业优先算法、高响应比优先算法实现。 每个进程用一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先级、到达时间、要求服务时间、进程状态等等。 其中到达...原创 2019-11-08 15:39:05 · 5604 阅读 · 5 评论 -
算法:0-1背包问题
看b站一个人讲的,虽然讲的不好,但是课件做的还是挺不错的,拿来借鉴一下(2333)原创 2019-11-05 20:17:06 · 417 阅读 · 1 评论 -
算法:流水作业调度
问题:n个作业 N={1,2,…,n}要在2台机器M1和M2组成的流水线上完成加工。每个作业须先在M1上加工,然后在M2上加工。M1和M2加工作业 i 所需的时间分别为 ai 和bi,每台机器同一时间最多只能执行一个作业。流水作业调度问题要求确定这n个作业的最优加工顺序,使得所有作业在两台机器上都加工完成所需最少时间。最优调度应该是:使M1上的加工是无间断的。即M1上的加工时间是所有ai...原创 2019-11-01 12:48:37 · 7691 阅读 · 5 评论 -
算法:数字三角形
题目重述描述73 88 1 02 7 4 44 5 2 6 5(图1)图1给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。注意:路径上的每一步只能从一个数走到下一层上和它最近的左边的那个数或者右边的那个数。输入输入的是一行是一个整数N (1 < N <= 100),给出三角形...原创 2019-10-31 20:38:21 · 872 阅读 · 0 评论 -
算法:多边形游戏
1、问题描述: 给定N个顶点的多边形,每个顶点标有一个整数,每条边上标有+(加)或是×(乘)号,并且N条边按照顺时针依次编号为1~N。下图给出了一个N=4个顶点的多边形。游戏规则 :(1) 首先,移走一条边。 (2) 然后进行下面的操作: 选中一条边E,该边有两个相邻的顶点,不妨称为V1和V2。对V1和V2顶点所标的整数按照E上所标运算符号(+或是×)进行运算,得到一个整数;用该整数标...原创 2019-10-31 20:24:42 · 1891 阅读 · 6 评论