<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SAYA_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/SAYA_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SAYA_]]></copyright><item><title><![CDATA[深入理解C++浮点数(float、double)类型数据比较、相等判断]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49717307</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49717307</guid><author>SAYA_</author><pubDate>Sun, 08 Nov 2015 11:29:16 +0800</pubDate><description><![CDATA[浮点数在内存中的存储机制和整型数不同，其有舍入误差，在计算机中用近似表示任意某个实数。具体的说，这个实数由一个整数或定点数（即尾数）乘以某个基数（计算机中通常是2）的整数次幂得到，这种表示方法类似于基数为10的科学记数法。所以浮点数在运算过程中通常伴随着因为无法精确表示而进行的近似或舍入。但是这种设计的好处是可以在固定的长度上存储更大范围的数。


1、将字符串转换为float、double]]></description><category></category></item><item><title><![CDATA[POD对象]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49701333</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49701333</guid><author>SAYA_</author><pubDate>Sat, 07 Nov 2015 13:23:15 +0800</pubDate><description><![CDATA[POD类型（Plain Old Data），就是C++里面和C内存结构上完全兼容的结构。


    对于POD类型T的对象，不管这个对象是否拥有类型T的有效值，如果将该对象的底层字节序列复制到一个字符数组（或者无符号字符数组）中，再将其复制回对象，那么该对象的值与原始值一样。

    对于任意的POD类型T，如果两个T指针分别指向两个不同的对象obj1和obj2，如果用memcpy库]]></description><category></category></item><item><title><![CDATA[C++中memcpy和memmove的区别总结]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49699683</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49699683</guid><author>SAYA_</author><pubDate>Sat, 07 Nov 2015 09:52:02 +0800</pubDate><description><![CDATA[这篇文章主要介绍了C++中memcpy和memmove的区别总结,这个问题经常出现在C++的面试题目中,需要的朋友可以参考下


        变量的命名我们在写程序时，一般讲究见到变量的命名，就能让别人基本知道该变量的含义。memcpy内存拷贝，没有问题;memmove，内存移动？错，如果这样理解的话，那么这篇文章你就必须要好好看看了，memmove还是内存拷贝。那么既然memcpy和m]]></description><category></category></item><item><title><![CDATA[声明map对象时你不知道的事]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49688125</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49688125</guid><author>SAYA_</author><pubDate>Fri, 06 Nov 2015 21:41:43 +0800</pubDate><description><![CDATA[在用map容器写一段程序时，发现个问题
请看下面代码
map m;
m['a'];
cout 
这输出什么呢？
如果用普通数据类型这么做呢？
#include
#include

using namespace std;

int main()
{
	int a;
	cout << a<<endl;//error未引用的局部变量

	bool b;
	cout << (int)b <<]]></description><category></category></item><item><title><![CDATA[找出一串字符里出现次数最多的字符]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49688059</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49688059</guid><author>SAYA_</author><pubDate>Fri, 06 Nov 2015 21:33:41 +0800</pubDate><description><![CDATA[题目描述：
输入一串字符s，找出出现次数最多的字符，如果有多个字符出现最多，按照原先字符顺序输出。
例如：
s：12321
输出是：
1
2




我借用容器map写出的代码，如果此题还有更好的解法，请回复我。
#include
#include

using namespace std;

int main()
{
	map m;
	char s[100];

	cin]]></description><category></category></item><item><title><![CDATA[压缩矩阵]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49668383</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49668383</guid><author>SAYA_</author><pubDate>Thu, 05 Nov 2015 21:38:45 +0800</pubDate><description><![CDATA[根据数据结构书本上敲打的，讲述内容较少，但是添加了一些注释。
//稀疏矩阵的压缩存储,最多存储10*10的矩阵
#include
#include//use setw
using namespace std;


typedef struct
{
	int row;//非零元的行下标
	int column;//非零元的列下标
	int e;//非零元
}Triple;

typedef str]]></description><category></category></item><item><title><![CDATA[pair 与 make_pair]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49648445</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49648445</guid><author>SAYA_</author><pubDate>Thu, 05 Nov 2015 00:07:37 +0800</pubDate><description><![CDATA[// pair简单讲就是将两个数据整合成一个数据// 本质上是有first, second两个成员变量的结构体
//make_pair就是构造pair对象的意思
#include
#include
#include

void test_pair()
{
	// pair两种构造的方法
	// 方法1
	std::pair("This is a StringTest0.", 9.7);	// 浮点]]></description><category></category></item><item><title><![CDATA[bind1st 和 bind2nd 解析]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49633783</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49633783</guid><author>SAYA_</author><pubDate>Wed, 04 Nov 2015 09:59:19 +0800</pubDate><description><![CDATA[头文件：
      看这篇文章前，请先看   ptr_fun的使用  和    STL 中 mem_fun 和 mem_fun_ref 的用法
       bind1st和bind2nd函数把一个二元函数对象绑定成为一个一元函数对象。  但是由于二元函数对象接受两个参数，在绑定成为一元函数对象时需要将原来两个参数中的一个绑定下来。   也即通过绑定二元函数对象的一个参数使之成为一元函数对象]]></description><category></category></item><item><title><![CDATA[ptr_fun]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49633667</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49633667</guid><author>SAYA_</author><pubDate>Wed, 04 Nov 2015 09:52:15 +0800</pubDate><description><![CDATA[头文件：
ptr_fun是将一个普通的函数适配成一个仿函数(functor), 添加上argument_type和result type等类型，它的定义如下：



[cpp] view
 plaincopyprint?






templateclass _Arg1,  
    class _Arg2,  
    class _Result> inline ]]></description><category></category></item><item><title><![CDATA[nullptr----C++11]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49633297</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49633297</guid><author>SAYA_</author><pubDate>Wed, 04 Nov 2015 09:27:37 +0800</pubDate><description><![CDATA[原文链接：  http://blog.youkuaiyun.com/huang_xw/article/details/8764346#comments





1. 引入nullptr的原因
引入nullptr的原因，这个要从NULL说起。对于C和C++程序员来说，一定不会对NULL感到陌生。但是C和C++中的NULL却不等价。NULL表示指针不指向任何对象，但是问题在于，NULL不是关键字，]]></description><category></category></item><item><title><![CDATA[STL 中 mem_fun 和 mem_fun_ref 的用法]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49625233</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49625233</guid><author>SAYA_</author><pubDate>Wed, 04 Nov 2015 00:39:54 +0800</pubDate><description><![CDATA[怎么对容器中的所有对象都进行同一个操作？我们可能首先想到的是用循环来实现。
比如有如下的一个类：
class ClxECS
{
public:
	int DoSomething()
	{
		// 这里以输出一句话来代替具体的操作
		cout << "Output from method DoSomething!" << endl;
		return 0;
	};
}; 
现在定义如下一个]]></description><category></category></item><item><title><![CDATA[C++的for语句详解]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49584961</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49584961</guid><author>SAYA_</author><pubDate>Mon, 02 Nov 2015 13:04:32 +0800</pubDate><description><![CDATA[for(int i=0;i
     cout


这是很简单的语句了
来看下一句代码
#include 

int main()
{
	for (int i; i = 0, ++i < 10;)
		std::cout << i << std::endl;

	return 0;
}
输出什么呢？
是的，运行后，无限输出1
我们来看一下
for ( #1 ; #2 ; #3]]></description><category></category></item><item><title><![CDATA[从头到尾彻底理解KMP]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49582793</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49582793</guid><author>SAYA_</author><pubDate>Mon, 02 Nov 2015 09:32:44 +0800</pubDate><description><![CDATA[从头到尾彻底理解KMP







原文链接：http://blog.youkuaiyun.com/tukangzheng/article/details/38438481
作者：July
时间：最初写于2011年12月，2014年7月21日晚10点 全部删除重写成此文，随后的半个多月不断反复改进。




1. 引言

    本KMP原文最初写于2年多前的2011年12]]></description><category></category></item><item><title><![CDATA[OpenGL入门学习]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49557913</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49557913</guid><author>SAYA_</author><pubDate>Sun, 01 Nov 2015 14:08:23 +0800</pubDate><description><![CDATA[OpenGL作为当前主流的图形API之一，它在一些场合具有比DirectX更优越的特性。
1、与C语言紧密结合。
OpenGL命令最初就是用C语言函数来进行描述的，对于学习过C语言的人来讲，OpenGL是容易理解和学习的。如果你曾经接触过TC的graphics.h，你会发现，使用OpenGL作图甚至比TC更加简单。
2、强大的可移植性。
微软的Direct3D虽然也是十分优秀的图形API，]]></description><category></category></item><item><title><![CDATA[OpenGL中gl，glu，glut的区别]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49494949</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49494949</guid><author>SAYA_</author><pubDate>Thu, 29 Oct 2015 18:00:51 +0800</pubDate><description><![CDATA[OpenGL中的gl库是核心库，glu是实用库，glut是实用工具库，gl是核心，glu是对gl的部分封装，glut是OpenGL的跨平台工具库，gl中包含了最基本的3D函数，而glu似乎对gl的辅助，如果算数好，不用glu的情况下，也是可以做出同样的效果。glut是基本的窗口界面，是独立于gl和glu的，如果不喜欢用glut可以用MFC和Win32窗口等代替，但是glut是跨平台的，这就保证了我]]></description><category></category></item><item><title><![CDATA[&&和& ；||和|]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49404347</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49404347</guid><author>SAYA_</author><pubDate>Sun, 25 Oct 2015 16:33:31 +0800</pubDate><description><![CDATA[&&短路与
&与（非短路与）


||短路或
|或（非短路或）


关于它们的用法可以百度，这里介绍它们的区别：
就拿“与”来说，要求所有的条件都判断；而如果使用短路与，第一个条件为false的话，则后面的条件将不会判断
下面看几段代码就全懂了：
#include

using namespace std;

int main()
{
	if (10 != 10 & 10 /]]></description><category></category></item><item><title><![CDATA[数组指针和指针数组]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49390279</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49390279</guid><author>SAYA_</author><pubDate>Sat, 24 Oct 2015 23:11:43 +0800</pubDate><description><![CDATA[1、数组指针(指向数组的指针)

(1)数组在内存中的表示

创建一个数组就是在内存里面开辟一块连续的空间，比如int a[4];就是在内存里面开辟了一个大小为4*sizeof(int)字节的内存空间。二维数组是特殊的一维数组。

先来看一段代码：



[cpp] view
 plaincopy






"font-size:16px;">void mai]]></description><category></category></item><item><title><![CDATA[大数相乘]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49387563</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49387563</guid><author>SAYA_</author><pubDate>Sat, 24 Oct 2015 19:50:53 +0800</pubDate><description><![CDATA[红色笔是代表下标


/*大数相乘问题*/

#include
#include

using namespace std;

void LargeNumbersOperate(string &, string &);

int main()
{

	string str1, str2;

	while(cin >> str1 >> str2)
		LargeNumbersOperate(s]]></description><category></category></item><item><title><![CDATA[C++按位运算符]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49384611</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49384611</guid><author>SAYA_</author><pubDate>Sat, 24 Oct 2015 14:05:20 +0800</pubDate><description><![CDATA[位运算是指按二进制进行的运算。在程序中，常常需要处理二进制位的问题。C/C++语言提供了6个位操作运算符。这些运算符只能用于整型操作数，即只能用于带符号或无符号的char,short,int与long类型。在实际应用中，建议用unsigned整型操作数，因为带符号操作数可能因为不同机器结果不同。


C/C++位操作运算符


操作符
功能
用法


~
位求反
~exp]]></description><category></category></item><item><title><![CDATA[rbegin()和rend()]]></title><link>https://blog.youkuaiyun.com/SAYA_/article/details/49376627</link><guid>https://blog.youkuaiyun.com/SAYA_/article/details/49376627</guid><author>SAYA_</author><pubDate>Sat, 24 Oct 2015 02:24:08 +0800</pubDate><description><![CDATA[rbegin()==end()
rend()==begin()
但是注意rbegin,rend的类型和begin,end不一样
前者是反向迭代器(reverse_iterator)，后者是迭代器(iterator)
对reverse_iterator执行递增将导致它递减
来看看实际使用：
#include
#include
using namespace std;
int main()]]></description><category></category></item></channel></rss>