C++
C++基础应用
Magic__Conch
这个作者很懒,什么都没留下…
展开
-
OpenGL概述(核心模式与立即模式、扩展、OpenGL中的对象)
OpenGL本身不是一个API,而是一个。OpenGL是一个巨大的(state machine),它是定义OpenGL现在该如何工作的变量的集合。原创 2022-09-14 19:23:55 · 1704 阅读 · 0 评论 -
C++API和知识点补充
在于底层实现的容器尾部添加元素时,首先会创建这个元素,然后再将这个元素拷贝或者移动到容器中(如果是拷贝的话,事后会自行销毁先前创建的这个元素)。原创 2022-09-05 14:13:50 · 246 阅读 · 0 评论 -
C++比较全局变量、静态全局变量、静态方法
C++内存结构:代码区,全局数据区,常量存储区,堆区,栈区。比较全局变量和静态全局变量未经初始化的静态全局变量会被程序自动初始化为0;静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的;静态变量都在全局数据区分配内存。所以不能在两个文件生成同名的全局变量,需要使用extern关键字,而static修饰的则可以(因为只对当前文件可见),例子和解释如下。全局变量第一个文件里:int b; //全局变量int main(){}第二个文件里:int b;//编译报错ex原创 2022-04-05 11:08:45 · 833 阅读 · 0 评论 -
句柄(HANDLE)的简单理解
文章目录什么是句柄句柄的本质理解为什么需要句柄什么是句柄句柄是一个整数,单独的看它只是数字。但这个整数是进程句柄表数组的下标,有了这个下标,操作系统就可以找到其索引的数据结构,并能找到数据结构里面的指针,然后根据这个指针获取内核里的某个对象。句柄的本质理解操作系统内核中有一个全局句柄表(如上图)。每个进程有自己的一个句柄表,是一个数据结构组成的数组,每个数据结构包含一个指向内核对象的指针、访问掩码、继承标识等。句柄是进程句柄表数组的下标。在32位系统中,句柄是一个32位值。64位系统中则是原创 2022-03-16 16:33:07 · 7163 阅读 · 0 评论 -
关于VS里的C++项目不能自动重新编译rebuild的问题
问题描述运行代码的时候,修改别的cpp文件中的代码无效(必须在解决方案管理器右键项目名rebuild才好使),一直是上一次编译的结果。很奇怪,Tools->option里我的配置是正常的。然后我注意到,如果我修改main.cpp文件,还是可以正常自动编译的。解决方案右键你修改无效的那个文件,点属性,这里选no,然后就正常了。不知道是不是vs本身的bug。...原创 2022-01-14 13:28:09 · 870 阅读 · 0 评论 -
关于include之后全局变量重定义的问题
在测试shared_ptr线程安全时出了这个问题。原因在于include之后,这个全局变量编译了两次(因为被main和实现cpp两个单元引用了)。原代码如下:shared_ptr_test.h#include<stdio.h>#include<iostream>#include <string.h>#include <memory>#include <mutex>#include <thread>using namesp原创 2022-01-04 15:08:41 · 849 阅读 · 0 评论 -
虚函数、纯虚函数、虚继承——virtual关键字的小例子
文章目录虚函数纯虚函数虚继承虚函数虚函数是C++的运行时多态,可以在基类中将被重写的成员函数设置为虚函数。虚函数的作用是:当通过基类的指针或引用调用该成员函数时,将根据指针指向的对象类型确定调用的函数,而非指针的类型。例子如下所示:我们定义一个基类Shape,令Rectangle类继承自Shape。我们写两个函数:outputType和outputTypeWithoutVirtual,在子类中对其进行重写。在测试类中,我们创建一个Rectangle对象,然后使用Shape指针获取Rectan原创 2022-01-03 18:55:10 · 1012 阅读 · 0 评论 -
QT中文乱码解决方案
#pragma execution_character_set(“utf-8”)原创 2021-10-05 13:59:59 · 84 阅读 · 0 评论 -
正则表达式与其在C++中使用
什么是正则表达式正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。简单的来说正则表达式就是特殊的字符序列,用于描述要匹配的文本模式。现在假设你需要从200M的邮件里寻找一个与一个地址相近的格式,那么使用正则表达式便可以快速完成。正则表达式的基本语法1、Literals 文字输入什么就匹配什么。目标字符串:dog正则表达式:dog原创 2021-05-25 17:36:35 · 185 阅读 · 0 评论 -
CSP 201712-4 行车路线(100)
CSP 201712-4 行车路线(100)问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航。 小芳将可能的道路分为大道和小道。大道比较好走,每走1公里小明会增加1的疲劳度。小道不好走,如果连续走小道,小明的疲劳值会快速增加,连续走s公里小明会增加s2的疲劳度。 例如:有5个路口,1号路口到2号路口为小道,2号路口到3号路口为小道,3号路口到4号路口为大道,4号路口到5号路口为小道,相邻路口之间的距离都是2公里。如果小明从1号路口到5号路口,则总疲劳值为(2+2)2+2+22=16+原创 2020-09-11 22:06:39 · 515 阅读 · 0 评论 -
CSP 201712-3 Crontab(100)
CSP 201712-3 Crontab(100)样例输入3 201711170032 2017112223520 7 * * 1,3-5 get_up30 23 * * Sat,Sun go_to_bed15 12,18 * * * have_dinner样例输出201711170700 get_up201711171215 have_dinner201711171815 have_dinner201711181215 have_dinner201711181815 have_原创 2020-09-10 22:14:16 · 230 阅读 · 0 评论 -
CSP 202006-2 稀疏向量(100)
CSP 202006-2 稀疏向量(100)思路:该问题数据两过大,不能将数据从0到n遍历相加(n<10^9)。我的思路是用map存第一个稀疏向量,然后再输入第二组向量时直接进行结果的累加计算。本题提交了两次,第一次90分超时,第二次原样代码提交,100分,时间刚好2.0s。不知道怎样才能有更快的方法。坑点:要注意这种卡时间的问题不要用万能头,否则会极大拖慢运行速度。结果要用long long来存储。同样的代码也有不同的分数?...原创 2020-09-06 17:43:24 · 193 阅读 · 0 评论 -
CSP 202006-1 线性分类器(100)
CSP 202006-1 线性分类器(100)思路:先记录每一个点,再输入线,每次输入线后,对所有的点进行遍历,计算在该线下该每个点的纵坐标值,若>改点的纵坐标则在下侧,否者在上册。#include"bits/stdc++.h"using namespace std;struct Point{ int x,y; char type[2];}point[1006];int n,m,a,b,c;char part[]={' ',' '};int main(){ scanf("%d原创 2020-09-06 17:16:32 · 176 阅读 · 0 评论 -
CSP 201412-3 集合竞价(100)
CSP 201412-3 集合竞价(100)问题描述 某股票交易所请你编写一个程序,根据开盘前客户提交的订单来确定某特定股票的开盘价和开盘成交量。 该程序的输入由很多行构成,每一行为一条记录,记录可能有以下几种: 1. buy p s 表示一个购买股票的买单,每手出价为p,购买股数为s。 2. sell p s 表示一个出售股票的卖单,每手出价为p,出售股数为s。 3. cancel i表示撤销第i行的记录。 如果开盘价为p0,则系统可以将所有出价至少为p0的买单和所有出价至多为原创 2020-09-06 16:45:40 · 436 阅读 · 0 评论 -
CSP 201412-2 Z字形扫描(100)
CSP 201412-2 Z字形扫描(100)问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan)。给定一个n×n的矩阵,Z字形扫描的过程如下图所示: 对于下面的4×4的矩阵, 1 5 3 9 3 7 5 6 9 4 6 4 7 3 1 3 对其进行Z字形扫描后得到长度为16的序列: 1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3 请实现一个Z字形扫描的程序,给定一个n×n的矩阵,输出对这个矩阵进行Z字形扫描原创 2020-09-06 12:21:58 · 114 阅读 · 0 评论 -
CSP 201412-1门禁系统(100)
问题描述 涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。输入格式 输入的第一行包含一个整数n,表示涛涛的记录条数。 第二行包含n个整数,依次表示涛涛的记录中每位读者的编号。输出格式 输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现。样例输入51 2 1 1 3样例输出1 1 2 3 1评测用例规模与约定 1≤n≤1,000,.原创 2020-09-06 11:32:16 · 101 阅读 · 0 评论 -
CSP 201409-4最优配餐(100)
CSP 201409-4最优配餐(100)问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务。随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题。 栋栋的连锁店所在的区域可以看成是一个n×n的方格图(如下图所示),方格的格点上的位置上可能包含栋栋的分店(绿色标注)或者客户(蓝色标注),有一些格点是不能经过的(红色标注)。 方格图中的线表示可以行走的道路,相邻两个格点的距离为1。栋栋要送餐必须走可以行走的道路,而且不能经过红色标注的点。 送餐的主要成本体现在路上所花的时原创 2020-09-06 11:22:02 · 370 阅读 · 0 评论 -
CSP 201409-3 字符串匹配(100)
CSP 201409-3 字符串匹配(100)问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。输入格式 输入的第一行包含一个字符串S,由大小写英文字母组成。 第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。 第三行包含一个整数n,表示给出的文字的行数。 接下来n行,原创 2020-09-05 23:01:24 · 190 阅读 · 0 评论 -
CSP 201409-1 相邻数对(100)
201409-1 相邻数对(100)问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。输入格式 输入的第一行包含一个整数n,表示给定整数的个数。 第二行包含所给定的n个整数。输出格式 输出一个整数,表示值正好相差1的数对的个数。样例输入610 2 6 3 7 8样例输出3样例说明 值正好相差1的数对包括(2, 3), (6, 7), (7, 8)。评测用例规模与约定 1<=n<=1000,给定的整数为不超过10000的非负整数原创 2020-09-05 22:34:17 · 124 阅读 · 0 评论 -
CSP 201409-2 画图(100)
CSP 201409-2 画图(100)问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。 下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到(4, 4),用绿色和紫色表示。第二个矩形是(2, 3)到(6, 5),用蓝色和紫色表示。图中,一共有15个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一次。在实际的涂色过程中,所有的矩形都涂成统一的颜色,图中显示不同颜色仅原创 2020-09-05 19:37:01 · 135 阅读 · 0 评论 -
CSP 201403-4 无线网络(100)
CSP认证 无线网络(80分)问题描述 目前在一个很大的平面房间里有 n 个无线路由器,每个无线路由器都固定在某个点上。任何两个无线路由器只要距离不超过 r 就能互相建立网络连接。 除此以外,另有 m 个可以摆放无线路由器的位置。你可以在这些位置中选择至多 k 个增设新的路由器。 你的目标是使得第 1 个路由器和第 2 个路由器之间的网络连接经过尽量少的中转路由器。请问在最优方案下中转路由器的最少个数是多少?输入格式 第一行包含四个正整数 n,m,k,r。(2 ≤ n ≤ 100,1原创 2020-09-05 19:09:04 · 286 阅读 · 0 评论