C++
OliverkingLi
耶耶
展开
-
c语言内存对齐小技巧
如果需要改变机器或者编译器默认的对齐方式,可以采用:#pragma pack(4)//设置默认对齐数为4如果需要使用默认的则:#pragma pack()原创 2020-04-04 17:21:40 · 183 阅读 · 0 评论 -
C++迭代器学习
// test_1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <iterator>#include <array>#include <list>#include <forward_list>#include <vect...原创 2020-03-10 22:20:08 · 150 阅读 · 0 评论 -
c++ STL六大部件
1.容器2.分配器3.算法4.迭代器5.适配器6.仿函式#include <iostream>#include <stdexcept>#include <cstdlib>#include <ctime>#include <array>#include <vector>#include...原创 2020-02-29 22:01:55 · 271 阅读 · 0 评论 -
C++内存管理之泄露检查
参考自:http://blog.csdn.net/zxcred/article/details/3228239C++程序的复杂性很大一部分在于他的内存管理,没有C#那样的垃圾回收机制,内存管理对初学者来说很困难。经常会出现内存泄露的情况。那么我们写程序如何避免内存泄露呢?首先我们需要知道程序有没有内存泄露,然后定位到底是哪行代码出现内存泄露了,这样才能将其修复。 本文描述了如何检测内存泄露原创 2017-11-24 09:59:33 · 443 阅读 · 0 评论 -
C++内存管理浅谈
一个由C/C++编译的程序占用的内存分为以下几个部分: 1、栈区(stack):又编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构的栈。 2、堆区(heap):一般是由程序员分配释放,若程序员不释放的话,程序结束时可能由OS回收,值得注意的是他与数据结构的堆是两回事,分配方式倒是类似于数据结构的链表。 3、全局区(static):也叫静态转载 2017-11-24 10:22:37 · 338 阅读 · 0 评论 -
C++多线程浅析
在Windows系统下,Windows api提供了很多对多线程的支持。一个程序中至少有一个线程,这个线程称之为主线程(main thread)。Windows下的线程操作办法如下:CreateThread用于创建一个线程,函数原型为:HANDLE WINAPI CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, //原创 2017-11-24 11:21:59 · 400 阅读 · 0 评论 -
Linux环境下编译链接调试C/C++源程序
一:单文形式 这里介绍最常用的GCC编译连接器。其中gcc基本的使用格式:gcc[选项] [选项][目标文件] 上面的使用格式中目标文件可以缺省,gcc会默认生成可执行的文件,生成名:编译文件.out。gcc会按照命令选项要求对输入文件进行预处理,编译,汇编,链接等操作,生成输出文件。 参考一些gcc命令手册有: 以千年规律:hell原创 2018-01-15 18:15:58 · 581 阅读 · 0 评论 -
C++和excel交互
最近碰到在c++端打算把数据写入交互excel,一开始觉得opencv也有对应的库函数,后来发现c++端使用IO流就可以实现,现在记录一下:// openblas-test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <fstream>#include <streambuf>#include <ios...原创 2018-05-31 13:52:47 · 5813 阅读 · 2 评论 -
最大公约数&最小公倍数(GCD,LCM)
// 最大公约数void get_GCD(){ int a, b; while (scanf_s("%d%d", &a, &b) != EOF) { /* 求解两个正整数的最大公约数: 假设为a,b;如果g是a,b的最大公约数,那么g也一定是b和(a mod b)的最大公约数 则可以迭代: a = b,b = a mod b把问题规模降下来...原创 2019-02-01 15:37:21 · 976 阅读 · 0 评论 -
素数求解
// 求某个正整数是否为素数void is_Prime(){ int s; while (scanf_s("%d", &s) != EOF) { if (s < 2) { printf("NO\n"); } else { int r = -1; // 这里先计算平方根,然后+1避免精度损失,同时for循环仅计算一次平方根 // 同时...原创 2019-02-01 15:41:52 · 390 阅读 · 0 评论 -
二叉排序树构建和前序,中序,后续遍历实现
好久没冒过泡。。。这次复习数据结构,搞个二叉排序树code:#include "stdafx.h"#include <stdio.h>#include <iostream>#include <vector>#include <string>#include <unordered_map>#include <..原创 2019-01-28 18:47:54 · 546 阅读 · 0 评论 -
根据二叉树前序序列和中序序列还原二叉树,并输出后序遍历序列
code:#include "stdafx.h"#include <stdio.h>#include <iostream>#include <vector>#include <string>#include <unordered_map>#include <stdexcept>#include&原创 2019-01-28 18:53:41 · 2789 阅读 · 2 评论 -
给定序列构造二叉排序树,判断是否为同一二叉排序树
#include "stdafx.h"#include <stdio.h>#include <string.h>#include <iostream>struct Node { Node*lchild; Node*rchild; int c;}Tree[110];int loc;Node*create(){ Tree[loc].lch...原创 2019-01-30 16:05:52 · 2410 阅读 · 0 评论 -
素因数问题
求解出某个数的素因数的个数,包括重复的素因数// 2019.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream>bool mark[100001];int prime[100001];int primeSize;// 素数刷选法选择出0-100000的素数void init(){ prim...原创 2019-02-12 18:32:17 · 1113 阅读 · 0 评论 -
C++虚函数机制实现多态性
// 2019.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<iostream> // 定义抽象基类(包含有纯虚函数的类就成为抽象类或者抽象基类)class shape{public: virtual float area() const { return 0.0; } virtual float volu...原创 2019-03-04 15:36:31 · 513 阅读 · 0 评论 -
素数解法笔记
// c_datastructure.cpp : 定义控制台应用程序的入口点。//// C++字符串流的练习demo#include "stdafx.h"#include#include#include#include#include#includeusing namespace std;bool isPrime_1(long num) { if (num <= 1)原创 2017-11-23 20:10:06 · 320 阅读 · 0 评论 -
C++字符串流练习
// c_datastructure.cpp : 定义控制台应用程序的入口点。//// C++字符串流的练习demo#include "stdafx.h"#include#include#include#include#includeusing namespace std;struct Student { int num; char name[20]; int sco原创 2017-11-23 19:12:46 · 406 阅读 · 0 评论 -
C++文件操作与文件流学习
一:对ASCII码的文件// c_datastructure.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#include#includeusing namespace std;void inputFile(char *);void outputFile(char *);int main(){原创 2017-11-22 21:59:46 · 470 阅读 · 0 评论 -
C++基类派生类
// C++_test1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#include#include// using namespace std;using std::cin;using std::cout;using std::endl;using std::string;using std::i原创 2017-04-10 22:03:17 · 716 阅读 · 0 评论 -
C语言实现斐波那契数列递归和非递归算法
// c_dataStructure.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;int Fab_re(int n) { long f; if (n < 0) { cout << "Please make sure your input is right!" << endl; }原创 2017-07-30 11:59:37 · 3069 阅读 · 0 评论 -
选择排序实现
// c_dataStructure.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;templatevoid SelectionSort_C(T data[], int n) { for (int i = 0, j, least; i < n - 1; i++) { for (j =原创 2017-08-07 20:40:38 · 319 阅读 · 0 评论 -
冒泡排序改进之梳排序实现
// c_dataStructure.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;templatevoid combSort(T data[], int n) { int step = n, j, k; while ((step = int(step / 1.3)) > 1) {原创 2017-08-07 21:10:37 · 407 阅读 · 0 评论 -
数学之美,C++之美,代码之美
用三段 140 字符以内的代码生成一张 1024×1024 的图片Kyle McCormick 在 StackExchange 上发起了一个叫做 Tweetable Mathematical Art 的比赛,参赛者需要用三条推这么长的代码来生成一张图片。具体地说,参赛者需要用 C++ 语言编写 RD 、 GR 、 BL 三个函数,每个函数都不能超过 140 个字符。每个函数都会接到 i 和原创 2017-09-25 17:07:35 · 722 阅读 · 0 评论 -
最大连续子数组
问题描述,给定一个数组A[0,1,...,n-1],求出A的连续数组,使得该子数组的和最大。 例如:数组A[1,-2,3,10,-4,7,2],则最大的子数组为[3,10,-4,7,2]解法:1.暴力法2.分治法3.动态规划法一:暴力发分析:直接求解A[i,...,j]的值,0代码分析:int maxSubArr原创 2017-11-18 10:50:29 · 1432 阅读 · 0 评论 -
虚函数导引学习一
// c_datastructure.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing namespace std;class Point {public: Point(float x=0, float y=0); void setXY(float, float); float getX() co原创 2017-11-21 19:39:55 · 315 阅读 · 0 评论 -
虚函数学习二
// c_datastructure.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing namespace std;class Student {public: Student(int n, string nam, float sco) :num(n), name(nam), score(sco) {原创 2017-11-21 20:05:01 · 302 阅读 · 0 评论 -
虚函数析构函数三
// c_datastructure.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing namespace std;class Student {public: Student() {} Student(int n, string nam, float sco) :num(n), name(nam)原创 2017-11-21 20:35:33 · 433 阅读 · 0 评论 -
为什么不能在构造函数中使用虚函数
先上代码:// c_datastructure.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing namespace std;class Base {public: Base() { fun(); } virtual void fun() { cout << "Base" << endl;原创 2017-11-21 22:00:40 · 1181 阅读 · 0 评论 -
虚函数学习之虚函数表--四
// c_datastructure.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing namespace std;class Base {public: Base() { cout << "Base构造函数" << endl; } virtual void f() { cout << "Base:原创 2017-11-21 22:43:03 · 286 阅读 · 0 评论 -
虚函数综合版五
// c_datastructure.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#includeusing namespace std;class Shape {public: virtual float area() const{ return 0.0; } virtual float volume() const原创 2017-11-22 10:47:26 · 270 阅读 · 0 评论 -
C++字符流操作
// c_datastructure.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include#include#includeusing namespace std;int main(){ cout << "************" << endl; char ch[20]; cout << "enter a sente原创 2017-11-22 19:57:43 · 1992 阅读 · 0 评论 -
C++学习之引用
// C++_test1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#includeusing namespace std;int main(){ //引用实际是为已经存在的对象起了另外一个名字 //引用必须初始化 int ival = 1024; int &refval = ival; refval = 5; //正确,re原创 2017-03-20 21:00:09 · 372 阅读 · 0 评论