![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++ 基础
主要包括一些c++的注意点和自己的一些想法
FARO_Z
还好有好好学,毕业没失业
展开
-
C++ STL模板类vector 快速创建一个m*n的二维数组
vector的两种构造方式vecotr的初始化中,有这么一个方式vector<int> vec(n);这能构造一个拥有n个元素,且每个元素都为 0 的vector而用下面的方式vector<int> vec(n,1);能构造一个拥有n个元素,且每个元素都为 1 的vector二维vector的构造知道了上面的两种方法,我们就可以快速构造一个m*n的vector二维数组vector<int> tmp(n);vector<vector&l原创 2020-06-19 20:29:46 · 2569 阅读 · 0 评论 -
C++ queue中 push结构体
今天在写二叉排序树,写到BFS算法的时候,因为要用到队列,所以就用了STL里的queue,可是写好后代码就标红,具体是下面这个样子报的错是下面这样的(c++有时候报的错误就是让人很难理解)想到就是push个结构体元素,就出这种问题,属实让人难受后来转念一想,自己推的好像不是结构体元素哦分明是个指针改成下面这个样子就好了改完这个错,我隐约想起来上学期上数据结构的时候,老师好像说过这个问题(说到底还是怪自己上课不好好听)当然,这个问题不只是在queue里要注意,所有的STL都要注意这个问原创 2020-06-15 22:42:10 · 2638 阅读 · 0 评论 -
C++ 实现排列
设一组数p = {r1, r2, r3, … ,rn}, 全排列为perm§,pn = p – {rn}。则perm§ = r1perm(p1), r2perm(p2), r3perm(p3), … , rnperm(pn)。当n = 1时perm(p} = r1。如:求{1, 2, 3, 4, 5}的全排列1、首先看最后两个数4, 5。 它们的全排列为4 5和5 4, 即以4开头的5的全排列和以5开头的4的全排列。由于一个数的全排列就是其本身,从而得到以上结果。2、再看后三个数3, 4, 5。它们原创 2020-06-01 22:07:49 · 990 阅读 · 0 评论 -
C++ 读文件 多读一行
今天在写邻接表的时候,通过读文件的形式读取数据,最后发现每次都会多读取一行,找了好一会儿才找到元凶void Graphic::buildGraph(std::string fname){ std::ifstream fin(fname); fin>>this->num; this->graph=new FirstNode[num]; while(!fin.eof())//<======这里就是出事的地方 { int firstVex,vex,weight;原创 2020-05-27 10:05:01 · 937 阅读 · 0 评论 -
C++ 获得程序的运行时间
程序设计与分析的课每次都要求我们对程序的运行时间去分析,我本人习惯用c++,可是c++没有像java中getCurrentMills()那么便利的函数,这次,我特意去找了一下c++的。1.用GetTickCount()函数DWORD Start = GetTickCount();//这里运行你的程序代码DWORD End = GetTickCount();则(End-Start)就是你的程序运行时间, 以毫秒为单位这个函数只精确到55ms,1个tick就是55ms。程序测试#include转载 2020-05-24 20:01:06 · 3327 阅读 · 0 评论 -
C++ int和char互转,int和string互转,char和string互转
因为在写项目或者刷OJ时总是碰到这类问题,所以这次统一处理一下我不会列出所有的方法,只会列出自己认为最方便,最好用的方法int char互转int,char的相互转换和ASCII有关,这里不具体解释int 转 charint ia=9;char ca=9+'0'; //ca=='9'char 转 intchar ca='9';int ia=ca-'0'; //ia==9int string 互转VS2010中to_string()的函数有BUG,string str=to_st原创 2020-05-20 16:52:57 · 297 阅读 · 0 评论 -
C++ 希尔排序
前言之前的几大经典排序算法,就是希尔排序让我有点摸不着头脑,最近反过来看,我发现是希尔排序演示动画的数据长度不够长导致的。个人认为要想快速了解希尔排序的原理,数据长度为20最为适宜,这里偷个懒,先放一个长度为10的希尔排序教程链接希尔排序介绍1959年Shell发明,第一个突破O(n2)的排序算法,是简单插入排序的改进版。它与插入排序的不同之处在于,它会优先比较距离较远的元素。希尔排序又叫缩小增量排序。希尔排序的大致过程是将长度为n的数组依次分为n/2,n/22,n/22*2…(直到n为1)的组原创 2020-05-19 19:48:42 · 255 阅读 · 0 评论 -
VS隐藏菜单插件 Hide Main Menu
当VS2010 安装 Hide Main Menu 菜单不见了怎么办?之前因为捉急的笔记本屏幕高度,下了一个Hide Main Menu的扩展,效果还是可以的但随之而来的问题就是,要用菜单栏的时候怎么办?之前联机找扩展的时候没有好好看介绍全英文的太懒不想看,想打开联机扩展,又找不到菜单栏…还好有万能的吧友帮忙。Hide Main Menu 自带快捷键 alt+T按一下就出来了。...原创 2020-04-15 02:04:59 · 1228 阅读 · 0 评论 -
c++ 输入不定长的字符数组
OJ题目中总会出现给定一个字符串,删除其中某些字符的题目,但输入不会给字符串的长度。网上有的方法是先定义一个超大的数组,然后用这个大数组来储存数据,但我不喜欢这个方法,不但浪费空间,如果题目给定字符串大于这个大数组,还会报错当然,也有用vector的,但是vector毕竟不是自己写实现的,用起来总有一点心虚我一般用的方法是string 转 char数组,话不多说,上代码void Array...原创 2020-04-19 14:54:14 · 4258 阅读 · 2 评论 -
if语句不能用连等!!!
今天在写程序的时候,一个Bug我改了好久,后来发现是if语句中的连等问题。 以前在学习程序语言的时候,书上只强调过不能有大于什么小于什么的操作,像下面这样if(a<=b<=c);一定要写成下面这样if(a<=b && b<=c)但书上从来没有提醒过不能用连等,我自己也从来没写过,知道今天遇到了,就像下面这样程序对if语句没有反应...原创 2020-04-28 10:16:13 · 3475 阅读 · 4 评论