自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 windows下socket编程(单用户)c++

服务端 #include<WinSock2.h> #include<iostream> #include <Ws2tcpip.h> #pragma comment(lib,"ws2_32.lib") using namespace std; int main() { //请求版本 WSADATA wsaData; WSAStartup(MAKEWORD(2, 2), &wsaData); if (HIBYTE(wsaData.wVersion) != 2

2020-05-26 12:02:56 172

原创 scanf的安全问题-待完善

昨天在csdn中看见一道题目 又看了解析 后面发现这道题其实很不严谨 这道题存在数组越界问题 name数组只分配了4个字节的内存 但输入abcdefg却有7个字节 首先我们需要知道 先让我们运行一下 64位编译器下 解析: 连续定义的变量,内存地址一般也相邻,所以我们在这只考虑一般情况。 32位编译器下 ...

2020-05-23 19:44:02 211

原创 [编程题]多多的排列函数

数列 {An} 为N的一种排列。 例如N=3,可能的排列共6种: 1 2 3 4 5 6 1, 2, 3 1, 3, 2 2, 1, 3 2, 3, 1 3, 1, 2 3, 2, 1 定义函数F: 其中|X|表示X的绝对值。 现在多多鸡想知道,在所有可能的数列 {An} 中,F(N)的最小值和最大值分别是多少。 输入描述: 第一行输入1个整数T,表示测试用例的组数。( 1 <= T <= 10 )第二行开始,共T行,每行包含1个整数N,表示数列 {An} 的元素个数。( 1 <= N

2020-05-22 20:20:22 3136 8

原创 深层复制与浅层复制的实现思路

浅层赋值 将pintsarray类中points size动态分配空间时候 使用系统自带的复制函数 将出现以下情况 浅层复制释放空间时候,释放完一个变量后如delete pointsarray1;pintsarray2的points size指针将找不到对应的内存地址将无法访问;而且再次释放pointsarray2将会报错。 深层复制 所以我们必须重写复制构造函数 实现以下图解 我们只需在复制构造函数中给points size指针重新分配空间 然后再将被复制对象的*points size给this-&g

2020-05-21 12:42:34 188

原创 C/C++小知识 日常更新

1、 “->” 是和指针连用的 也就是“->”前面是一个内存地址 比如this指针 用于结构体取出结构体中的数据和取类中数据 class student { public: string name[20]; } student *xy;//访问时需要写成 *xy.name="hhhhh";等价于 xy->name="hhhhh"。 student xy;//访问时需要写成 xy.name="hhhhh" 2、“[ ]”表示取地址中的值 “[ ]”中可以+数字来偏移 i

2020-05-21 09:45:52 142

原创 栈空间与堆空间等存储区域

1、栈区(stack)— 程序运行时由编译器自动分配,存放函数的参数值,局部变量的值等。 其操作方式类似于数据结构中的栈。 2、堆区(heap) — 在内存开辟另一块存储区域。 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。 如:c中malloc和c++中new 注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3、全局区(静态区)(static)—编译器编译时即分配内存。 全局变量和静态变量的存储是放在一块的, 初始化的全局变量和.

2020-05-20 13:36:30 548

原创 指向函数的指针——函数指针

函数指针的好处主要是实现函数回调 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 列子 #include<iostream> using namespace std; int compute(int x,int y,int(*function)(int,int)) { ret

2020-05-18 09:40:36 162

原创 c++编码(IEEE 754)以及浮点数比较问题

C/C++中非常重要的原则: The important rule to remember is that powers of two and integer multiples thereof can be perfectly represented. everything else is an approximation. 除了可以表示为2的幂次以及整数数乘的浮点数可以准确表示外,其余的数的值都是近似值。 例如,1.5可以精确表示,因为1.5 = 3*2^(-1);然而12.3却不能精确表示,因为它

2020-05-16 19:11:37 444

原创 贪心算法—乘船问题

乘船问题:有n个人,第i个人重量为Wi。每艘船的载重量均为C,最多可乘坐两个人。求用最少的船装载所有人的方案。 #include<iostream> #include<algorithm> #define NUM 100 using namespace std; int W[NUM]; int main() { int C; //船载重量 int C_sum; //船数 int n; //人数 cout<<"输入船的载重量和人数:"<<e

2020-05-10 11:29:23 1320 1

原创 数列极差

佳佳的老师在黑板上写了一个由n个正整数组成的数列,要求佳佳进行如下操作,每次擦去其中的两个数a,b,然后再数列中加入一个数a*b+1,如此下去直至黑板上剩下一个数为止,在所有按这种操作方式最后得到的数中,最大的为max,最小的为min,则该数列的极差定义为M=max-min。求给出数列的极差。 #include <iostream> #include<bits/stdc++.h> using namespace std; const int N=999; int n,a[N]; p

2020-05-10 11:28:39 552

原创 最大子序和

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/maximum-subarray 著作权归领扣网络所...

2020-05-03 20:36:36 68

原创 C++函数中值的传递方式与实现原理分析

值传递、引用传递、指针传递 #include<iostream> using namespace std; //值传递 void change1(int n){ cout<<"值传递--函数中n的地址"<<&n<<endl; //显示的是拷贝的地址而不是源地址 n++; } //引用传递 void change2(int & n){...

2020-05-02 17:27:01 579

原创 一级指针的定义与基本使用

为什么要用指针 1、指针的使用使得不同区域的代码可以轻易的共享内存数据,这样可以使程序更为快速高效; 2、C语言中一些复杂的数据结构往往需要使用指针来构建,如链表、二叉树等; 3、C语言是传值调用,而有些操作传值调用是无法完成的,如通过被调函数修改调用函数的对象,但是这种操作可以由指针来完成,而且并不违背传值调用。 注:在c中const常量能赋值给指针,但在c++中不能 #include<s...

2020-05-01 14:00:48 471

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除