C++
什么战吕布
毕业于某农民学校,拥有超过13年的打诨经验。
展开
-
【C++】大小端及判断方式
不同的微处理器会使用不同的字节序其中内存低地址存储低字节,内存高地址存储高字节称为小端(little endian)反之则称为大端(big endian)英特尔CPU采取的字节序是小端。Wii、Xbox360、PlayStation3等主机采用的是PowerPC处理器的变种,其字节序预设是大端。因此在英特尔CPU上开发的游戏,打包到上述主机之前就需要通过Cook进行字节序的转换。原创 2022-12-16 20:22:49 · 914 阅读 · 0 评论 -
静态局部变量
静态局部变量也是在函数里声明的局部变量,与普通局部变量不同的是前面加了一个static关键字修饰。存在静态存储区而不是普通局部变量存储的栈区。因为我们需要在函数结束以后保留此次函数运行中某个变量的值,以待下一次使用。全局变量可以做到这点但这个变量一旦放到全局,就可以被任意函数访问。如果只希望一个函数局部访问,又希望保留到下次使用,就可以使用静态局部变量。静态局部变量只能被初始化一次,每次访问会使用上一次访问以后的值:#include<iostream>using namespace st原创 2021-09-14 14:19:42 · 788 阅读 · 0 评论 -
快排被卡random_shuffle解决
快排class Solution {public: void qksort(vector<int> &nums, int left, int right){ //对nums数组[left, right]段数据排序 if(left >= right)//越界,返回 baseline return; int low = left, high = right; int key = nums原创 2021-08-24 16:30:54 · 336 阅读 · 0 评论 -
c/c++内存对齐
引用知乎答主KDF5000的一段话——内存对齐主要遵循下面三个原则:结构体变量的起始地址能够被其最宽的成员大小整除结构体每个成员相对于起始地址的偏移能够被其自身大小整除,如果不能则在前一个成员后面补充字节结构体总体大小能够被最宽的成员的大小整除,如不能则在后面补充字节(其实编译器在编译的时候是可以指定对齐大小的,实际使用的有效对齐其实是取指定大小和自身大小的最小值,一般默认的对齐大小是4。)举个例子:由于内存对齐,创建结构体的时候变量的书写顺序可能影响到结构体变量的大小struct{原创 2021-08-18 14:41:11 · 111 阅读 · 0 评论 -
一维系统聚类c++实现
系统聚类(hierarchical cluster method)算法概述每个独立点作为一个类对每个类两两求距离将距离最近的两个类作为一个新的类重复2-3步直到达到分出目标的k个类为止算法实现数据构造及应用场景:构造n个善意结点(数据偏差很小的结点)和nn-n个恶意结点(恶意结点)。欲使用系统聚类的方式将恶意结点和善意结点分离开来代码实现#include<iostream>#include<bits/stdc++.h>#define random(x) (ra原创 2021-08-15 15:59:28 · 468 阅读 · 0 评论 -
char数组读入带空格的字符串
我们知道scanf("%s", s);读入char*字符串的时候是以空格为分隔符的,那么如果我们期望输入的字符串中本身就有空格呢?比如我要读入一个句子How are you?,这时候使用上述语句显然不可行。可以用这个:scanf("%[^\n]", s);这个格式控制符%[]的意思是读入[]内部的字符,如%[A-Z]表示只读入大写字母:-表示范围,^表示非。故%[^\n]表示一直读到回车为止。...原创 2021-04-25 16:18:34 · 5921 阅读 · 0 评论 -
【王道数据结构】两个线性表位置原地互换
文章目录题目思路伪码c代码题目已知在一维数组A[m+n]中依次存放两个线性表a1,a2,a3...ama_1,a_2,a_3...a_ma1,a2,a3...am和b1,b2,b3...bnb_1,b_2,b_3...b_nb1,b2,b3...bn。试编写一个函数将数组中两个顺序表的位置互换,即将b1,b2,b3...bnb_1,b_2,b_3...b_nb1,b2,b3...bn放在a1,a2,a3...ama_1,a_2,a_3...a_ma1,a2,a3...am原创 2021-03-21 11:34:15 · 345 阅读 · 0 评论 -
【王道数据结构】删除顺序表中所有值为x的元素
对长度为n的顺序表L,编写一个时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为x的元素思路:记录值为x元素的个数count对值不为x的元素,向前移动count个单位顺序表长减去count伪代码:void DelX(SqList &L, ElmType x){ int count = 0, i = 0; while(i < L.length){ if(x == L.data[i]) count++; else a[i-count原创 2021-03-21 08:37:48 · 4772 阅读 · 3 评论 -
【已解决】printf和scanf输入输出double类型问题
注意格式控制符即可:scanf使用%lf控制double类型输入,printf应该使用%f控制输出栗子:#include<stdio.h>int main(){ double e, m, p, c, avg, sum; printf("输入你的英语,数学,物理,化学成绩: \n"); scanf("%lf %lf %lf %lf", &e, &m, &p, &c); sum = e+m+p+c; printf("%f\n", e); av原创 2021-03-21 08:17:23 · 782 阅读 · 0 评论 -
菜鸟的HDOJ1089~1096练习(部分)
HDOJ1090Problem DescriptionYour task is to Calculate a + b.InputInput contains an integer N in the first line, and then N lines follow. Each line consists of a pair of integers a and b, separated ...原创 2019-03-31 18:30:06 · 317 阅读 · 0 评论 -
leetcode两数之和(萌新的lc探索日记)
第一次做leetcode。。。 原来这个*Note: The returned array must be malloced, assume caller calls free().* 的意思是返回动态数组来表示输出结果,而且不需要在函数内free。原来c是可以通过返回对应函数类型指针的方式返回数组的诶୧(๑•̀◡•́๑)૭具体方式大概是:int* example(int n){//传入数组...原创 2019-10-29 20:33:46 · 565 阅读 · 0 评论 -
字符串首单元闲置
利用char字符串实现字符串首单元闲置:注意取其长度的时候要用strlen(str+1) char s1[10]; cin>>s1+1; cout<<strlen(s1+1)<<endl;解释:char类型数组的数组名实质是一个指针。s1+1使得指针指向了数组的第1位下标处。故使用零单元闲置的char字符串,在设置和取用的时候只要用str+1(指向s1...原创 2020-04-27 20:08:33 · 144 阅读 · 0 评论 -
天梯赛练习:已知后序遍历和中序遍历,输出层序遍历
树的遍历给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:72 3 1 5 7 6 41 2 3 ...原创 2020-02-03 21:17:10 · 3085 阅读 · 2 评论 -
洛谷P1008三连击:
新手村这道题实在是太不友好了。。。看了题解,归纳出来:题解思路:用循环枚举出最小数,然后分别乘以2和3得到第二、三个数。再验证其三位能组成1——9.能则输出。破题点:1.最小数的取值从理论上来说应是123——3332.逆向思考,先令其满足1:2:3再验证其刚好由1~9组成3.如何验证其由1~9组成题目:将1,2,…,9共9个数分成3组,分别组成3个三位数,且使这3个...原创 2019-11-29 20:41:20 · 331 阅读 · 0 评论