- 博客(14)
- 资源 (6)
- 收藏
- 关注
原创 新式for循环遍历字符串的每一个字符(C++)
新式for循环遍历字符串的每一个字符(C++)#include <iostream>#include <string>#include <vector>#include <list>using namespace std; int StrToInt3(string str) { int value = 0; for (auto ch : str)//ch依次取的是str里面的字符,直到取完为止
2021-09-14 19:53:23 1846
原创 C语言字典序比较,短代码
int strcmp(const char * a, const char * b)//字典序比较两字符串大小{ int ret = 0 ; while(!(ret=*a-*b)&&*b) { a++; b++; } //相等且没有结束 return ret;}若相等则返回0a < b 返回 负数a > b 返回 正数...
2021-09-14 19:04:18 910
原创 C++运算符重载的细节
C++运算符重载的细节 对象a = 对象b + 对象c一、值返回还是引用返回1.值返回:在重载函数里创建一个局部对象(需要考虑构造新对象过程中对静态数据成员的影响),为这个局部对象进行赋值(b+c的实际意义)然后用于返回,这种方法在返回值后,编译器利用该局部对象(b+c)为对象a进行赋值(这里如果不编写赋值运算符的重载函数,则编译器自动调用默认的赋值运算符的重载函数,为对象a进行赋值,这种情况下的赋值为浅拷贝,对象a与临时对象(b+c)共享系统资源)对此,简而言之,如果对象中没有独立地占用堆等系
2021-06-01 11:08:43 181
原创 c++临时对象与空指针导致clion debugger无法运行的bug
c++临时对象与空指针导致clion debugger无法运行的bug#include <iostream>#include "savings.h"#include "checking.h"using namespace std;int main(){ string acntName; float saveNum; while(acntName != "x" || saveNum != 0) { cout << "请输入账
2021-05-18 11:02:03 334
原创 const成员函数可以修改静态数据成员
const成员函数可以修改静态数据成员如题,在下面的C程序中,从const函数修改静态数据成员工作正常:class A { public: static int a; // static data member void set() const { a = 10; }};但是从const函数修改非静态数据成员不起作用:class A { public: int a; // non-static data membe
2021-05-14 11:32:58 585
原创 解决c++错误:redefinition of class xxx
错误类型:redefinition of class xxx错误点:一般出现错误 redefinition of class xxx 同时也会有错误 previous definition of class xxx**解决方法:**一般来说出错原因是在该类定义的头文件(.h)中没有使用 #ifndef,#define 和 #endif 来进行保护,也就是缺少了防止类被多次包含的宏;但是我在定义了这些宏之后仍然报重复定义的错误,最后发现:原来经保护的头文件代码应该下次写在#ifndef,#define
2021-05-10 21:19:12 5228
原创 fscanf读取文件时,关于文件格式的问题
fscanf读取文件时,关于文件格式的问题scanf遇到空格,回车,EOF,文件中的换行就停止while(!feof(fp)) { Beverage *r; r = (Beverage*)malloc(sizeof(Beverage)); //为新结点申请内存 fscanf(fp,"%d,%d,%[^,],%f,",&r->id,&r->material_num,r->name,&
2021-03-27 11:10:03 750
原创 按从大到小顺序创建单链表简易写法及改进
按从大到小顺序创建单链表简易写法 Node *head; head=(Node *)malloc(sizeof(Node)); head->next=NULL; Node *a,*b; a=b=head; q->next=NULL; if(head->next==NULL) { head->next=q; } else
2020-12-26 11:26:03 614
原创 八皇后及其本质解
##八皇后问题#include<stdio.h>int a[13][13];int ans=0;int Setjudge(int i,int j,int n) //判断a[i][j]所在的斜线是否有棋子,0为有,1为无{ int flag=1; int i1; for(i1=0;i+i1<n&&j+i1<n;i1++) { if(a[i+i1][j+i1]==1) {
2020-12-15 14:34:46 352
原创 scanf的正则用法的常见问题
scanf的正则用法的常见问题 scanf("%d %d",&m,&n); char a[256]; scanf("%[^\n]%*c",a); //输入为 //2 6 //ABCDEFGH 12345如上,再scanf正则用法前,如果已经有输入,并且输入结尾会包含一个回车(换行符),那么这个回车会作为后面一个scanf的输入,即将后面scanf的正则用法给取消了解决该问题的办法就是再上一个读入结束后加一个getchar();将最后的回车吃掉;
2020-12-07 22:55:11 205
原创 指针运算符*(间接寻址符)的优先级低于自增运算符
指针运算符*(间接寻址符)的优先级低于自增运算符*lower++; 这条语句意为指针lower指向下一个内存,然后取其地址(*lower)++; 真正想要让指针指向的内容自增应该加个括号
2020-12-07 21:11:45 999
原创 结构体队列的简单创建(更直观)
结构体队列的简单创建方法typedef struct Queue{ Node* head; Node* tail; int size;}Queue;结构体Queue 含首尾两个指针与size大小量void enQueue(Queue* que, int x,int y) //入队{ Node* p; p = (Node*)malloc(sizeof(Node)); p->x = x; p->y = y; p->next = NULL; if(que->
2020-12-06 11:25:33 599
原创 dfs与bfs解决迷宫类问题(两者的区别)
dfs解决迷宫问题(dfs的入门应用)下面是对应代码:#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>int min=9999999; int c[4][2]={{1,0},{0,1},{-1,0},{0,-1}}; //这里是定义的四个方向,上下左右int n;int s[1000][1000]; //一个足够容纳迷宫的二维数组void d
2020-12-05 15:50:07 731
原创 删除链表中结点可能出现的错误
要删除链表中结点的时候,删除的结点最好要先将其指针域置为null,不然可能删除后也会指向链表中的空间,导致其接上了链表,如果删除的是末尾的结点,那么就需要调整前一个结点的对应指针域的值...
2020-11-17 13:14:04 507
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人