![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++学习
wulizyzstc
慢慢向前,无限进步。
展开
-
排序算法整理
排序算法1.插入排序(1) 直接插入排序原理把第一个元素当作以及排了序的序列,从第二个位置开始,把要插入的元素当作哨兵并且生成副本0号位,依次与已经排了序的序列的元素从后往前比较,大于哨兵便向后移动一格,直到找到第一个比相应元素小的,然后把哨兵放到该元素后面。代码块void InsertSort(int A[],int n){ int j=0; for (int i=2;i<=n;i++)//依次将A[2]~ A[N]插入前面已经排好的顺序序列 {原创 2021-12-08 09:38:40 · 98 阅读 · 0 评论 -
第一次实践一个多文件的代码
收获1.#ifndef防止头文件重复包含为了避免同一个头文件被包含(include)多次,C/C++中有两种宏实现方式:一种是#ifndef方式;另一种是#pragma once方式。#ifndef 标识符A//每一个头文件都要有自己独特的标识//(有一定的规则,但是主要是自己定义的,看心情哈哈哈)//这句话是在判断该头文件是否定义过,//如果定义过,则执行#endif后面的内容//没有定义过,则执行#define里面的内容执行定义#define 标识符A……//这里面写头文件的东原创 2021-11-23 16:41:49 · 831 阅读 · 0 评论 -
typedef struct
用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, 和一个字符变量;以下则可行:typedef char* PCHAR;PCHAR pa, pb;这种用法很有用,特别是char* pa, pb的定义,初学者往往认为是定义了两个字符型指针,其实不是,而用typedef char* PCHAR就不会出现这样的问题,减少了错误的发生。用途二:用在旧的C代码中,帮助st原创 2021-11-17 19:07:52 · 543 阅读 · 0 评论 -
对于单向链表的排序与去重
#include "bits/stdc++.h"using namespace std;struct node { int num; node* next;};class Chain{ public: Chain() { head=tail=new node; } void GetElement(int ele)//单个元素补充 { tail->num=ele; tail->.原创 2021-10-19 02:14:05 · 126 阅读 · 0 评论 -
c++预处理
#define 预处理#define macro-name replacement-text#define PI 3.14159当这一行代码出现在一个文件中时,在该文件中后续出现的所有macro-name都将会在程序编译之前被替换为 replacement-text。参数宏#define MIN(a,b) (a<b ? a : b)相当于函数使用条件编译#ifdef DEBUG cerr <<"Variable x = " << x <<原创 2021-06-17 20:14:27 · 53 阅读 · 0 评论 -
cerr与cout的区别
概念std::cerr是ISO C++标准错误输出流,对应于ISO C标准库的stderr。与std::cout不同,ISO C++要求当cerr被初始化后,cerr.flags() & unitbuf非零(保证流在每次输出操作后被刷新),且cerr.tie()返回&cout。 [1] 即cerr默认和cout同步但无缓冲。cerr与cout的区别cout对应于标准输出流,默认情况下是显示器。这是一个被缓冲的输出,可以被重定向。cerr对应标准错误流,用于显示错误消息。默认情况下被原创 2021-06-17 20:02:12 · 999 阅读 · 0 评论 -
老是忘记的东西
动态二维数组小可爱vector原创 2021-06-16 16:26:46 · 63 阅读 · 0 评论 -
C++产生随机数
C++产生随机数目录C++产生随机数 rand() srand() 为了方便的使用我们可以用宏定义来替换 rand函数 其他的随机数的范围通式 c++产生验证码C++产生随机数C++中没有自带的random函数,要实现随机数的生成就需要使用rand()和srand()。不过,由于rand()的内部实现是用线性同余法做的,所以生成的并不是真正的随机数,而是在一定范围内可看为随机的伪随机数。rand()rand()会返回一随机数值, 范围在0至RAND_原创 2021-06-16 16:11:02 · 123 阅读 · 0 评论 -
const修饰成员函数
const修饰成员函数常函数:成员函数后加const后我们称为这个函数为常函数 void ShowPerson() const { }常函数内不可以修改成员属性成员属性声明时加关键字mutable后,在常函数中依然可以修改mutable int m_B常对象:声明对象=前==加const称该对象为常对象常对象只能调用常函数...原创 2021-06-16 16:03:23 · 48 阅读 · 0 评论 -
不认识的东西
typedef struct1.struct定义一个结构体2.typedef给这个结构体改一个名字typedef struct student{}StudentStudent就是这个结构体修改后的名字!原创 2021-06-16 15:57:36 · 60 阅读 · 0 评论 -
input(输入)
Input输入一串数字,自动存入数组,遇到回车结束 vector<int> array;//定义一个vector数组array int number; while (1) { cin >> number; array.push_back(number);//每输入一个数字就把它添加到数组的最后 if (cin.get() == '\n')//如果是回车符则跳出循环 break; }1.cincin>>a;cin遇到空格停止;2.cin原创 2021-06-16 15:51:31 · 931 阅读 · 0 评论 -
backward(逆序炫酷操作)
backwardchar*char *backward(char* str){ char*p1,*p2,t; p1=p2=str; while(*p2++); p2-=2; while(p1<p2) { t=*p1; *p1++=*p2; *p2--=t; } return str;}原创 2021-06-16 15:35:53 · 77 阅读 · 0 评论 -
binarysearch(二分查找法)
SearchbinarySearchcommonsearch target by binaryint binarysearch(int nums[],int target){ int low=0,high=nums.length-1; while(low<=high){ int mid=low+(high-low)/2; if(nums[mid]<target){low=mid+1;} if(nums[mid]>ta原创 2021-06-16 15:34:57 · 55 阅读 · 0 评论 -
tip(代码块)
tipleap yearbool leapYear(int year){ (year%4==0&&year%100!=0)||(year%400==0)?return true:return false;}isprimebool isprime(int x)//大于2开始{ bool t=true; for(int i=2;i<=x/2;i++) { if(x%i==0){t=false;break;} } r原创 2021-06-16 15:33:27 · 119 阅读 · 0 评论 -
常用头文件
常用头文件cstringcstring对应char[]类1.strlen(char a[])作用是获得字符串长度,不包括串尾符,比如"abc\0"的长度就是32.strcmp(char a[],char b[])就是比较两个字符串的字典序小于返回负数 等于返回0 大于返回正数3.strcpy(char a[],char b[])把b赋值给a , 比如a=“abc\0” b=“def\0”,运行之后 a就和b一样了4.strcat(char a[],char b[])就是把b接在a后面原创 2021-06-16 15:32:47 · 100 阅读 · 0 评论 -
sort排序
Sorting Ordersortsort(first,last,comp)comp=null ascending ordercomp=cmp descending order bool cmp(int a,int b) {return a>b;}comp=greater()=“descend”comp=less()=“ascend”bubblesortvoid bubblesort(int nums[],int length){原创 2021-06-16 15:29:57 · 57 阅读 · 0 评论