C++
xringm
这个作者很懒,什么都没留下…
展开
-
#pragma message预编译指令使用技巧
#pragma message预编译指令使用技巧(hangwire发表于2003-2-20 13:26:58)一般情况下,#pragma message( messagestring )是在编译期间,将一个文字串(messagestring)发送到标准输出窗口。典型的使用方法是在编译时报告和显示信息。下面的代码段是编译期间在标准输出窗口显示一条消息:#if _M_IX86 == 5转载 2016-03-24 09:36:22 · 327 阅读 · 0 评论 -
变量的生命周期
From:http://blog.csdn.net/yunyun1886358/article/details/5632087今天在论坛上看到有朋友发帖问道:既然静态全局变量与全局变量都存储在全局数据区,为什么作用域却不一样呢?也许答案非常简单:C++就是这么规定的,静态全局变量与全局变量的唯一区别就是作用域不同。 对一个C++变量来说,有两个属性非常重要:作用域和生命周期转载 2016-09-02 13:49:31 · 1325 阅读 · 0 评论 -
string:
string::npos 的一些说明一、定义 std:: string ::npos的定义:static const size_t npos = -1;表示 size_t 的最大值( Maximum value for size_t ) ,如果对 -1 表示size_t的最大值有疑问可以采用如下代码验证:#include iostream>#include转载 2016-08-31 14:01:05 · 313 阅读 · 0 评论 -
List vector map
1.ListList将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢.list对象函数assign() 给list赋值 back() 返回最后一个元素 begin() 返回指向第一个元素的迭代器 clear() 删除所有元素 empty() 如果list是空的则返回true end() 返回末尾的迭代器转载 2016-08-31 11:23:03 · 334 阅读 · 0 评论 -
友元函数和友元类
友元提供了不同类的成员函数之间、类的成员函数与一般函数之间进行数据共享的机制。通过友元,一个不同函数或另一个类中的成员函数可以访问类中的私有成员和保护成员。c++中的友元为封装隐藏这堵不透明的墙开了一个小孔,外界可以通过这个小孔窥视内部的秘密。友元的正确使用能提高程序的运行效率,但同时也破坏了类的封装性和数据的隐藏性,导致程序可维护性变差。友元函数 :友元函数是可以直接访问转载 2016-08-31 11:16:48 · 337 阅读 · 0 评论 -
C/C++之回调函数
今天讨论下C/C++中的回调函数。 在理解“回调函数”之前,首先讨论下函数指针的概念。函数指针(1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定了程序运行时的任何物件都可以用指针来指向它。函数是存放在内存代码区域内的,它们同样有地址,因此同样可以用指针来存取函数,把这种指向函数入口地址的指针称为函数指针。(2转载 2016-08-09 09:30:18 · 232 阅读 · 0 评论 -
类的成员函数做回调函数
非静态成员函数不能作为回调函数的原因:为了实现回调,我们必须把this指针给转换掉!可为了在该函数中可以直接操作该类中的成员,我们必须保留this指针!所以这是矛盾的。在类封装回调函数: a.回调函数只能是全局的或是静态的。 b.全局函数会破坏类的封装性,故不予采用。 c.静态函数只能访问类的静态成员,不能访问类中非静态成员让静态函数访问类的非静态成员的方法:转载 2016-05-06 13:06:48 · 803 阅读 · 0 评论 -
轻松记住大端小端的含义(附对大端和小端的解释)
或许你曾经仔细了解过什么是大端小端,也动手编写了测试手头上的机器上是大端还是小端的程序,甚至还编写了大端小端转换程序;但过了一段时间之后,当你再看到大端和小端这两个字眼,你的脑中很快浮起了自己曾经做过的工作,却总是想不起究竟哪种是大端、哪种是小端,然后又去查以前写的记录?更让人不快的是,这种经历反反复复,让你十分困扰。如果你和以前的笔者一样,有过这种不快的经历,那么这篇文章希望能帮你彻底解决这个苦转载 2016-05-04 15:11:12 · 493 阅读 · 0 评论 -
SetTimer和KillTimer详解
原文出处:http://www.cppblog.com/ivenher/articles/19969.html 在编程时,会经常使用到定时器。使用定时器的方法比较简单,通常告诉Windows一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序。SetTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器。计时器属于系统资源,使用完应及时销毁。转载 2016-04-26 11:16:30 · 16927 阅读 · 0 评论 -
random_shuffle算法小例子
原文地址:http://blog.csdn.net/aheroofeast/article/details/3907192首先简单的介绍一个扑克牌洗牌的方法,假设一个数组 poker[52] 中存有一副扑克牌1-52的牌点值,使用一个for循环遍历这个数组,每次循环都生成一个[0,52)之间的随机数RandNum,以RandNum为数组下标,把当前下标对应的值和RandNum对应位置的值交换,转载 2016-03-28 13:42:07 · 754 阅读 · 0 评论 -
linux printf设置颜色与输出控制,利用控制码,实现固定位置输出百分比进度
[cpp] view plain copy#include int main(void) { int i = 0; for (i=0;i { printf("%3d%%\033[1A\r\n",i); sleep(1); } r转载 2016-03-25 11:25:42 · 819 阅读 · 0 评论 -
vector删除元素后iterator失效
从一个简单的问题开始,删除数组中某个元素后连续重复的元素,例如 1,1,2,3,3,1,1,1,4,0 ---> 1, 2,3,1,4,0。考虑了几秒,然后就开始动手写代码了:#include #include using namespace std;int main(int argc, char* argv[]){ int a[] = {1, 1,转载 2016-09-05 10:36:13 · 5325 阅读 · 0 评论