C++
H-T-TYSK
time!
展开
-
C++进程空间堆栈的图解与代码注释
C与C++的进程空间化成了好多的区间,这些区间存储的内容并不同。下面利用代码进行解析。 上图是进程空间的结构。 (注):很多书上讲到堆是向上增,栈是向下降。这种说话很不明确,因为不同的书上有不同的画法。准确的说是堆向高地址增长,栈向低地址增长。 一段C或C++的代码,具体的变量到底怎么存储如下:#include<stdio.h>#include<malloc.h>int a = 1;//原创 2017-05-07 17:41:59 · 1428 阅读 · 0 评论 -
C++实现多目标遗传算法(0/1背包问题)
(背包问题):背包只能容得下一定重量b的物品,物品有m种,每种物品有自己的重量w(i)和价值v(i),从这些物品中选择装入背包,是背包不超过重量b,但价值又要最大。 上面为单目标的0/1规划问题,也就是说只考虑物体的重量不考虑物体的体积,形状等问题,一般而言,利用动态规划可以很好地解决背包问题,但是如果物体过多,使用动态规划将浪费很大的资源. 遗传算法作经典的人工智能算法,可以很原创 2017-10-31 20:00:49 · 4507 阅读 · 2 评论 -
C++ map用法
#include <map> #include <string> #include <iostream> using namespace std;int main(){ //变量声明的方式,和STL中其他方式的声明一样 map<int, string> mapStudent; //map的三种插入方式 ...原创 2018-04-23 19:25:09 · 555 阅读 · 0 评论 -
boost中的智能指针
(一)、vs2017配置boost库 (1)、boost官网是http://www.boost.org/,目前最新的版本是1.65.1,可以到这里下载。下载页面里有Unix和Windows的源码,以及Windows版本的第三方二进制包。下载最新版本的就行。 (2)、下载完成后解压到一个目录,例如我就放到了D:\DevTools\boost_1_67_0,目录结构如下图。 (3)、将上面的文件...原创 2018-04-19 20:28:10 · 326 阅读 · 0 评论 -
C++基类的虚析构函数作用
()C++基类的虚析构函数#include<iostream>using namespace std;class Base{private: int i;public: Base(){ cout << "Base count " << endl; } virtual ~Base(){ ...原创 2018-06-21 14:49:57 · 309 阅读 · 0 评论 -
C++回调函数
//回调函数是指一个通过函数指针调用的函数。//回掉函数不是由该函数的实现方法直接调用,//而是在特定时间或条件发生时由另一方调用的,用于对该事件或条件进行响应。//用于线程中异步非阻塞,也就是现场不需要挂起,另外的实践通过回调函数来通知线程事件进展#include&lt;iostream&gt;using namespace std;typedef int (*callf) (i...原创 2018-08-17 15:20:01 · 343 阅读 · 0 评论 -
C++中字符串类型名代表的地址
char s[] = &quot;abc&quot;; //s代表的是字符串的首地址,也就是a的地址string s1 = &quot;abc&quot;; //这里s1为类的实例化对象,因此s1代表的是类的首地址//因此:s == s1; //true 因为都是字符串//*s代表的是首地址的内容,也就是a//*s1错误,因为无法直接打印类的内容*s == &amp;amp;s1[0];//true,代表的都是字原创 2018-09-04 10:31:12 · 4542 阅读 · 1 评论