C++
一叶孤舟渡
想来杭州华为工作的可以联系我~
展开
-
编译时undefined reference to `WinMain‘的问题
代码编辑好,先保存,再运行。原创 2021-06-27 22:37:38 · 2083 阅读 · 0 评论 -
leetcode76题 最小覆盖子串解析
class Solution {public: string minWindow(string& s, string& t) { //哈希字典保存字符串中字符及其个数 unordered_map<char, int> need, window; //遍历需要寻找的子串,存入哈希字典中 for (auto& c : t) { need[c]++; } //定义左右指针,指向字符串首位 int left原创 2021-04-03 17:08:26 · 203 阅读 · 0 评论 -
逻辑运算符、位运算符、移位运算符、三目运算符、运算符的优先级
原创 2021-03-22 11:43:15 · 480 阅读 · 0 评论 -
vector常见定义方法
Vector<类型>标识符(最大容量,初始所有值)常见定义方法:vector a(5);//定义了5个整型元素的向量(<>中为元素类型名,它可以是任何合法的数据类型),但没有给出初值,其值是不确定的。vector a(5,1); //定义了5个整型元素的向量,且给出每个元素的初值为1vector a(b); //用b向量来创建a向量,整体复制性赋值vector a(b.begin(),b.begin+3);//定义了a值为b中第0个到第2个(共3个)元素 int b[.原创 2021-03-22 10:43:07 · 1272 阅读 · 1 评论 -
*max_element和*min_element
#include<iostream>#include<algorithm>using namespace std;int main(){ int a[]={4,2,3,8,5}; int len=sizeof(a)/sizeof(int); cout<<*max_element(a,a+len)<<endl; //输出集合最大元素 cout<<*min_element(a,a+len)<<endl;//输出集合最小元素原创 2021-03-22 10:39:05 · 311 阅读 · 0 评论 -
C++提取字符串中的单词
vector<string>word; string t; for(auto c:s){ if(c==' '){ word.push_back(t); t.clear(); }else t+=c; }//分割字符串 istringstream str(s); vector原创 2021-03-21 16:12:43 · 6629 阅读 · 3 评论 -
Boolean数组
原创 2021-03-20 22:32:56 · 1398 阅读 · 0 评论 -
数字字符串转换为数字:stoi()和atoi()
相同点:①都是C++的字符处理函数,把数字字符串转换成int输出②头文件都是#include不同点:①atoi()的参数是 const char* ,因此对于一个字符串str我们必须调用 c_str()的方法把这个string转换成 const char类型的,而stoi()的参数是const string&,不需要转化为 const char;②stoi()会做范围检查,默认范围是在int的范围内的,如果超出范围的话则会runtime error!而atoi()不会做范围检查,如果超出范原创 2021-03-20 21:19:48 · 578 阅读 · 0 评论 -
数组中第k个最大元素
class Solution {public: int findKthLargest(vector<int>& nums, int k) { //输入数组和index //创建随机数种子 srand(time(0)); //返回第k个最大的数的值 return quickSelect(nums,0,nums.size()-1,nums.size()-k); //nums是输入的数组,原创 2021-02-14 17:56:39 · 163 阅读 · 0 评论 -
时间转换程序(C++)
头文件在这里#ifndef MYTIME_H_#define MYTIME_H_#include <iostream>using namespace std;//定义一个类class Time{private: int hours; int minutes;public: Time(); Time(int h, int m = 0); void AddMin(int m); void AddHr(int h); void Reset(int h = 0, int原创 2021-02-08 11:17:40 · 2028 阅读 · 2 评论 -
C++ 读取、写入文件
// outfile.cpp -- writing to a file#include <iostream>#include <fstream> // for file I/Oint main(){ using namespace std; char automobile[50]; int year; double a_price; double d_price; ofstream out原创 2021-01-08 20:03:33 · 737 阅读 · 0 评论 -
C++sort()函数
c++标准库里的排序函数的使用方法I)Sort函数包含在头文件为#include<algorithm>的c++标准库中,调用标准库里的排序方法可以不必知道其内部是如何实现的,只要出现我们想要的结果即可!II)Sort函数有三个参数:(1)第一个是要排序的数组的起始地址。(2)第二个是结束的地址(最后一位要排序的地址)(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。Sort函数使用模板:Sort(sta原创 2020-10-19 20:08:46 · 1587 阅读 · 0 评论 -
opencv中的Scalar()函数
Scalar()函数在OpenCV中是用来设置颜色的。比如下面这个例子:#include <opencv2/opencv.hpp>using namespace cv;int main(){ Mat rawImg(600, 500, CV_8U, Scalar(0)); imshow("1", rawImg); waitKey(0); return 0;}新建了一个类型为8位无符号整型的单通道,尺寸为600*500大小的一块图像,并给Scalar赋值(0)。显示图像如下:原创 2020-10-19 19:51:00 · 16184 阅读 · 2 评论 -
OpenCV的line()函数绘制直线
CV_EXPORTS_W void line(InputOutputArray img, Point pt1, Point pt2, const Scalar& color, int thickness = 1, int lineType = LINE_8, int shift = 0)参数解释:img: 要绘制线段的图像。pt1: 线段的起点。pt2: 线段的终点。color: 线段的颜色,通过一个Sc原创 2020-10-19 19:36:57 · 14910 阅读 · 2 评论 -
PCL报错:error:4996的错误解决办法
最近在用利用pcl处理点云数据,不只一个程序出现4996的错误。解决办法:在头文件包含位置处,声明一条语句:#pragma warning(disanle:4996)这条语句的作用就是,将4996这条警报失效掉。%#pragma warning只对当前文件有效(对于.h,对包含它的cpp也是有效的)%而不是对整个工程的所有文件有效。当该文件编译结束,设置也就失去作用。...原创 2020-10-19 18:37:24 · 5590 阅读 · 1 评论 -
(番茄插件)Visual AssistX路径
先进入C盘的user文件夹中选择当前用户,然后接着进入AppData\Local\Microsoft\VisualStudio\10.0\Extensions\Whole Tomato Software\Visual Assist.(AppData文件夹,默认是隐藏的,需要设置显示所有文件即可看到。) ,找到VA_X.dll,y下面是我电脑上的完整路径,可以参考一下。C:\Users\17806\AppData\Local\Microsoft\VisualStudio\16.0_0d96f476\Exte原创 2020-10-16 10:29:01 · 860 阅读 · 0 评论 -
OpenCV-模板匹配
/******************************************************************** 创建日期: 2020/10/14 创建时间: 12:10 文件名字: C:\Users\17806\Desktop\靶标特征点提取\templateMatching\getPoints.cpp -------------------------------------- 文件功能: ------------原创 2020-10-14 14:41:48 · 290 阅读 · 0 评论 -
C++双冒号的作用
1、作用域符号::的前面一般是类名称,后面一般是该类的成员名称C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分。2、全局作用域符号作为全局作用域符号,双冒号要放在开头。::符号既可以指定类,也可以指定变量和命名空间:如果函数放在全局,就是全局函数如果变量定义在全局,就是全局变量如果一个命名空间放在全局,就是全局命名空间。3、双冒号也常常用于在类变量内部作为当前类实例的元素进行表示...原创 2020-10-11 22:32:24 · 676 阅读 · 0 评论 -
const指针和指向const值的指针
遇到这种情况,从右往左读。const int * ptr; 从右往左读:指针,整型常量 -> 连起来读,指向整型常量的指针。它指向的值不能修改int * const ptr; 从右往左读:常量指针,整型 -> 连起来读,指向整型的常量指针。它不能在指向别的变量,但指向(变量)的值可以修改。const int *const ptr; 指向整形常量 的常量指针 。它既不能再指向别的常量,指向的值也不能修改。...原创 2020-10-11 22:18:00 · 255 阅读 · 0 评论 -
C++ 布尔类型显示判断结果
添加cout.setf(ios_base::boolalpha);语句。#include <iostream>using namespace std;int main() { int x = 100; cout << "x = " << x << endl; cout << (x > 3) << endl; cout << (x < 3) << endl; cout.setf(ios_原创 2020-05-23 15:28:44 · 1069 阅读 · 0 评论 -
俄罗斯方块-C语言小程序
新建项目,粘贴上去就可以运行。//////////////////////////////////////////////////////////////// 名称: 俄罗斯方块 彩色版 1.0.0 //// 语言: C语言 //// 环境: Microsoft Visual Studio 2015 //// 日期: 2020年4月4号 ////原创 2020-05-15 09:13:33 · 1304 阅读 · 0 评论 -
第一个opencv的c++程序
#include<iostream>#include<opencv2/core/core.hpp>#include<opencv2/highgui/highgui.hpp>using namespace cv;int main(void){ Mat img = imread("C:\\Users\\17806\\Desktop\\扫描光条宽度\\...原创 2020-03-23 12:29:41 · 523 阅读 · 0 评论 -
VS2015配置openCV3.4.2,并考虑可能出现的问题及解决办法
OpenCV是什么?OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——有一系列C函数和少量的C++类构成,同时提供了Python、Ruby、Matlab等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留...原创 2020-03-23 12:16:23 · 814 阅读 · 0 评论 -
warning C4473: “scanf_s”: 没有为格式字符串传递足够的参数(解决方法)
用一个小例子代入一下:编写一个程序,提示用户输入名和姓,然后以“名,姓”的格式打印出来。如果代码这样写:int main(void){ char fname[40]; char lname[40]; printf("Enter your first name: "); scanf_s("%s", fname); printf("Enter your last name: ")...原创 2020-03-21 22:18:18 · 17054 阅读 · 4 评论 -
printf()的格式符
%d,%c,%s,%x是程序汇编语言中的格式符,它们的含义:1、%d表示按整型数据的实际长度输出数据。2、%c用来输出一个字符。3、%s用来输出一个字符串。4、%x表示以十六进制数形式输出整数...原创 2020-03-21 21:19:33 · 451 阅读 · 0 评论 -
字符串和格式化输入输出,小结
字符串是一些列被视为一个处理单元的字符。在C语言中,字符串是以空字符(ASCII码是0)结尾的一系列字符。可以把字符串储存在字符数组中。数组是一系列同类型的项或元素。在下面声明了一个名为name、有30个char类型元素的数组:char name[30];要确保有足够多的元素来储存整个字符串(包括空字符)。字符串常量是用双引号括起来的字符序列,如:”this is an example of ...原创 2020-03-21 21:05:34 · 377 阅读 · 0 评论 -
C语言之printf()和scanf_s()的*修饰符
printf()和scanf_s()都可以使用*修饰符来修改转换说明的含义。printf()的*修饰符如果不想预先指定字段宽度,希望通过程序来指定,那么可以用修饰符代替字符宽度。但是需要一个参数告诉函数,字段宽度是多少。也就是说%*d,那么参数列表中应该包含*和d对应的值。#include<stdio.h>int main(void){ unsigned width,...原创 2020-03-16 23:16:30 · 368 阅读 · 0 评论 -
C语言之给字符串断行有3种方法
#include<stdio.h>int main(void){ printf("Here's one way to print a "); printf("long string.\n"); printf("Here's another way to print a \long string.\n"); printf("Here's the newest way to...原创 2020-03-16 18:22:43 · 2115 阅读 · 0 评论 -
C语言之不匹配的浮点型转换
混淆整型和浮点型,结果会很奇怪。#include<stdio.h>int main(void){ float n1 = 3.0; double n2 = 3.0; long n3 = 2000000000; long n4 = 1234567890; printf("%.1e %.1e %.1e %.1e \n", n1, n2, n3, n4); printf("...原创 2020-03-16 17:58:45 · 325 阅读 · 0 评论 -
C语言的转换不匹配的问题
转换说明应该与待打印值的类型相匹配。通常有多种选择。例如,如果要打印一个int类型的值,可以使用%d,%x,%o。这些转换说明都可用于打印int类型的值,其区别在于他们分别表示一个值的形式不同。类似的,打印double类型的值使,可以使用%f,%e或%g。转换说明与待打印值得类型不匹配会怎样?通过下面的程序演示。#include<stdio.h>#define PAGES 336...原创 2020-03-16 11:51:48 · 931 阅读 · 0 评论 -
编写一个程序,要求提示输入一个ASCII码值(如,66),然后打印 输入的字符
#include<stdio.h>int main(void){ int ascii; printf("Enter an ASCII code:"); scanf_s("%d",&ascii); printf("%d is the ASCII code for %c.\n",ascii,ascii); return 0; }...原创 2020-03-08 21:59:31 · 6608 阅读 · 0 评论 -
数据类型总结/C语言理解
才疏学浅,下面的结论摘自《C+Primer+Plus+第6版》【美】Stephen Prata著C 有多种的数据类型。基本数据类型分为两大类:整数类型和浮点数类 型。通过为类型分配的储存量以及是有符号还是无符号,区分不同的整数类 型。最小的整数类型是char,因实现不同,可以是有符号的char或无符号的 char,即unsigned char或signed char。但是,通常用char类型表示...原创 2020-03-08 21:03:19 · 353 阅读 · 0 评论 -
如何在C语言中添加自己的函数
用一个简单的例子,来说明一下在C语言中添加自己写的函数。#include<stdio.h> //导入标准输入输出库的头文件void butler(void); //声明自己将要调用的函数int main(void) //主函数{ //花括号程序开始 printf("I will summon the butler ...原创 2020-03-06 11:33:30 · 6392 阅读 · 0 评论 -
C++预处理器
//预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。//#include<iostream>//using namespace std;////#define MIN(a,b) (a<b?a:b)////int main()//{// int i, j;// i = 100;// j = 30;// cout << "较小的值为: " << MIN(i, j) << endl;//// cin.get();//原创 2020-09-22 19:22:47 · 176 阅读 · 0 评论 -
C++模板
//模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。//模板是创建泛型类或函数的蓝图或公式。枯荣旗,比如迭代器和算法,都是泛型编程的例子,他们都使用了模板的概念。//函数模板eg://#include<iostream>//#include<string>////using namespace std;////template<typename T>//inline T const& Max(T const& a原创 2020-09-22 17:38:42 · 128 阅读 · 0 评论 -
C++命名空间
//命名空间:定义了一个范围,来区分不同范围内相同名称的函数、类、变量等。//定义命名空间使用关键词namespace,后跟命名空间的名称。//命名空间:定义了一个范围,来区分不同范围内相同名称的函数、类、变量等。//定义命名空间使用关键词namespace,后跟命名空间的名称。//命名空间如何为变量或函数等实体定义范围//#include<iostream>//using namespace std;////namespace first_space {// void fu原创 2020-09-22 15:34:23 · 104 阅读 · 0 评论 -
C++动态内存
//C++动态内存//C++程序中的内存分为两个部分:栈和堆。//栈:在函数内部声明的所有变量都将占用栈内存//堆:这是程序中未使用的内存,在程序运行时可用于动态分配内存//很多时候无法提前预知需要多少内存来存储某个定义变量中的特定信息,所需内存的大小需要在运行时才能确定。//C++中,可以使用new运算符为给定类型的变量在运行时分配堆内的内存,这会返回分配的空间地址。//当不在需要动态分配的内存空间时,可以使用delete运算符,删除之前由new运算符分配的内存。//C++动态内存//C+原创 2020-09-22 15:11:30 · 344 阅读 · 0 评论 -
C++异常值 处理
//异常是程序执行期间产生的问题//异常提供了一中转移程序控制权的方式//try,catch,throw//throw:抛出异常//catch捕获异常//try:try块中的代码标识将被激活的特定异常//try块中放置可能抛出异常的代码,称为保护代码。//不同情境下会抛出不同的异常,这时候可以罗列多个catch语句,用于捕获不同类型的异常//throw语句的操作数可以是任意表达式,表达式的结果的类型决定了抛出的异常的类型//throw抛出异常,try、catch捕获异常并做出反映//e原创 2020-09-21 21:45:14 · 586 阅读 · 0 评论 -
千行代码了解C++核心编程
//C++核心编程代码集合//内存分区模型://代码区:存放函数体的二进制代码,由操作系统进行管理的。//全局区,存放全局变量和静态变量以及常量//栈区:由编译器自动分配释放,存放函数的参数值,局部变量等//堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收。//代码区:// 存放 CPU 执行的机器指令// 代码区是**共享**的,共享的目的是对于频繁被执行的程序,只需要在内存中有一份代码即可// 代码区是**只读**的,使其只读的原因是防止程序意外地修改了它原创 2020-09-04 22:44:23 · 829 阅读 · 0 评论 -
900行代码带你C++从0到1
C++入门(学习顺序):1、如何创建一个C++程序2、注释、变量、常量、关键字概念学习3、数据类型:整型、浮点型、bool、char等4、运算符:算术、赋值、比较、逻辑5、程序流程结构:顺序、选择、循环6、数组:一维、二维7、函数:值传递、地址传递、函数声明、定义、分文件编写调用8、指针、常量指针、指针常量9、结构体10、指针、结构体、数组、函数等综合编写程序//C++学习路上程序集合//第一个C++程序:Hello World//#include<iostream>原创 2020-09-03 16:26:53 · 538 阅读 · 0 评论