C++
ZM970307
学习中.
展开
-
解决VS2010中winsock.h与winsock2.h冲突(重复定义)——转载
当这两个头文件顺序颠倒时,编译会出现许多莫名其妙的错误,错误如下:1>…\include\ws2def.h(91) : warning C4005: 'AF_IPX' : macro redefinition 1>…\include\winsock.h(460) : see previous definition of 'AF_IPX' …[原因分析] 主要原因是转载 2018-01-31 20:43:28 · 1574 阅读 · 0 评论 -
二叉树相关代码(从数组生成二叉树、中序线索化、层序遍历)
最近,我把二叉树树的几个相关代码敲了一遍,均运行成功,在此上传博客,与大家分享。代码主要包含: - 从键盘生成二叉树 - 从数组(vector)生成二叉树 - 二叉树的中序遍历 - 二叉树的中序线索化 - 线索二叉树的中序遍历 - 二叉树的层序遍历树图: 附上代码:#define _CRT_SECURE_NO_WARNINGS#include <stdio...原创 2018-04-12 22:54:07 · 598 阅读 · 0 评论 -
归并排序(分治法+简洁易懂)
归并排序是一种高效的排序算法(时间复杂度(O(nlogn))),按照分治三步法,对归并排序算法介绍如下: 划分问题: 把序列分成元素个数尽量相等的两半 递归求解:把两半元素分别排序。 合并问题:把两个有序表合并成一个 (我之前看都没有看过归并排序这么简洁的代码,包括在书上) 归并好处:高效(思想也很重要) 缺点:需要辅助存储空间。#include"stdio.h" #inc...转载 2018-04-17 19:10:35 · 727 阅读 · 0 评论 -
去除数组中重复的元素,并返回去重后数组的长度
#include <iostream>using namespace std;void insertSort(int a[], int n) //插入排序{ for(int i = 1; i < n; i++) { int j = i - 1; int key = a[i]; while (a[j] >...原创 2018-04-16 21:53:53 · 1678 阅读 · 0 评论 -
程序员必须知道的10大基础实用算法及其讲解:排序、查找、搜索和分类等
算法一:快速排序算法快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(i...转载 2018-04-16 20:53:28 · 430 阅读 · 0 评论 -
vector作为形参,要传递引用
数组作为形参时,传数组指针即可; 而vector作为形参时,要传引用,否则无法通过形参改变实参。具体看代码:原创 2018-04-03 20:49:13 · 3042 阅读 · 0 评论 -
C++中new和delete来创建和释放动态数组
在C++编程中,使用new创建数组然后用delete来释放。 一、创建并释放一维数组#include<iostream>using namespace std;int main(){ int n; cin>>n; //分配动态一维数组 int *arr=new int[n]; for(int i=0;i<n;...原创 2018-04-14 21:54:25 · 4046 阅读 · 0 评论 -
C/C++ 字符数组的输入输出
字符数组就是char数组,当维度是一维是可以当做“字符串”,当维度是二维时可以当成是字符串数组,即若干字符串。字符数组的输入除了使用scanf外,还可以使用getchar或者gets;其输出除了使用printf外,还可以使用putchar或者puts。(1)scanf输入,printf输出scanf对字符串的输入有%s和%c两种格式。%c格式用来输入单个字符,它能够识别空格和换行符并将其保存到字原创 2018-01-30 14:20:56 · 1533 阅读 · 0 评论 -
《C++ Prime》第2章 阅读笔记
原创 2018-01-29 22:05:25 · 269 阅读 · 0 评论 -
《C++ Prime》第1章 阅读笔记
main函数的返回值必须为int命令行编译文件:$ cl /EHsc prog1.cpp执行文件:$ prog1.exe 或者 $prog1(用参数 -std=c++0x 来打开对C++11的支持)流(stream):一个流就是一个字符序列,流想要表达的是 字符是顺序生成或消耗的标准库定义了4个IO对象cin 标准原创 2018-01-26 22:55:30 · 403 阅读 · 0 评论 -
《C++ Prime》第2章 阅读笔记
(2018/01/29 20:23)C++基本数据类型分为 算术类型 和 空类型,算数类型又分为 整型(包括字符和布尔类型在内) 和 浮点型。字由4字节或8字节组成。如何选择数据类型:当明确知道熟知不可能为负时,选择无符号类型;使用int执行整数运算;在算术表达式中不要使用char或bool;执行浮点数运算时选用double,因为float精度不够且原创 2018-01-29 21:36:40 · 245 阅读 · 0 评论 -
STL_导图(C++)
Stl讲解1 泛型程序设计 泛型 =》通用性。在 C++ 中,模板是泛型编程的基础。2体验stl运行流程参考:stl初体验代码3迭代器1.迭代器是一种设计思想。2.用iterator模式访问容器内元素,可以在不暴露容器内部元素的实现的前提下访问容器内的每个元素。3.迭代器和指针的区别: 指针中有地址,可以打印,但迭代器中无地址,不能打印原创 2018-01-27 22:39:10 · 392 阅读 · 0 评论 -
Qt中的常用插件
myWidget.cpp文件#include "mywidget.h"#include "ui_mywidget.h"#include #include #include #include myWidget::myWidget(QWidget *parent) : QWidget(parent), ui(new Ui::myWidget){ ui->s原创 2018-02-03 22:07:12 · 2049 阅读 · 0 评论 -
传递数组引用——数组作为形参时的最优解决方案
传值、传指针、传引用的区别:值传递,指针传递,当发生函数调用时,需要给形参分配空间,当传递的是对象是,要调用拷贝构造函数。而且指针最后析构时,要处理内存释放问题。引用传递,在内存中没有产生形参。效率大大提高!也不用处理指针的析构问题。数组作为形参弱化成为指针:数组有两个特性,影响作用在数组上的函数:一是不能复制数组,二是使用数组名时, 数组名会自动指向其第一个元素的指针。因原创 2018-02-02 20:04:46 · 12365 阅读 · 1 评论 -
Qt使用QSplitter实现分割窗口
分割窗口在应用程序中经常用到,它可以灵活分布窗口布局,经常用于类似文件资源管理器的窗口设计中,然后抱着这样的想法简单的实现了下 [cpp] view plain copy print?//main.cpp #include #include #include #include int main(int argc, char *argv[]) { QTe转载 2018-02-01 13:55:26 · 1239 阅读 · 0 评论 -
二叉树的层序遍历(附完整C++代码)
原理介绍层序遍历所要解决的问题很好理解,就是按二叉树从上到下,从左到右依次打印每个节点中存储的数据。如下图: 按层序遍历的原则,打印顺序依次应该是:A->B->C->D->E->F->G。 看完是不是感触非常深,这不就是队列数据结构最拿手的绝活吗,FIFO,先进先出!我从上到下,从左到右依次将每个数放入到队列中,然后按顺序依次打印就是想要的...原创 2018-04-13 20:28:21 · 6515 阅读 · 1 评论