<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wangxintang的专栏]]></title><description><![CDATA[个人笔记]]></description><link>https://blog.youkuaiyun.com/buptwxt</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; buptwxt]]></copyright><item><title><![CDATA[本地git仓库推送相关]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/73611982</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/73611982</guid><author>buptwxt</author><pubDate>Thu, 22 Jun 2017 23:09:01 +0800</pubDate><description><![CDATA[git 本地项目推送到github
首先在本地创建ssh key； 
$ ssh-keygen -t rsa -C “your_email@youremail.com”  
后面的your_email@youremail.com改为你的邮箱，之后会要求确认路径和输入密码，我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹，进去，打开id_rsa.pub，复制里面的key。
回到gi]]></description><category></category></item><item><title><![CDATA[字符创去除首尾空格，合并串中的多个空格为一个空格]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/46651527</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/46651527</guid><author>buptwxt</author><pubDate>Fri, 26 Jun 2015 16:34:53 +0800</pubDate><description><![CDATA[void EraseMultiSpace(std::string &str)
{
bool alnumFlag = false;
bool spaceFlag = false;


int j=0;
int j=0;
for (int i=0; i
{
if(!isspace(str.at(i)))
{ 
str.at(j) = str.at(i);
j++;
alnu]]></description><category></category></item><item><title><![CDATA[宏展开中含有#或者##]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/45104151</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/45104151</guid><author>buptwxt</author><pubDate>Sat, 18 Apr 2015 00:08:29 +0800</pubDate><description><![CDATA[#include 
#define f(a,b) a##b
#define g(a)  #a
#define h(a) g(a)
 
int main()
{
        printf("%s\n", h(f(1,2)));
        printf("%s\n", g(f(1,2)));
        return 0;
}
宏展开中含有#或者##那么久不回展开参]]></description><category></category></item><item><title><![CDATA[c++ 仿函数]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/44997933</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/44997933</guid><author>buptwxt</author><pubDate>Sat, 11 Apr 2015 19:11:57 +0800</pubDate><description><![CDATA[类似于func()这样调用的方式，但不是函数调用的东西。
例如：
重载了()的对象
函数指针对象
成员函数指针


stl中使用了大量的仿函数作为参数]]></description><category></category></item><item><title><![CDATA[c++ 代理类 copy clone]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/44804735</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/44804735</guid><author>buptwxt</author><pubDate>Wed, 01 Apr 2015 12:21:28 +0800</pubDate><description><![CDATA[在容器中同时存放基类和代理类会存在问题  会缺失数据
容器中存放基类的指针 1、内存管理的负担  2、 要操作元素，必须知道对象的静态类型


copy clone诞生
基类中诞生一个纯虚函数和虚析构函数


定义一个行为与父类对象相似，而又潜在的表示所有继承自父类对象的类，该类的对象就是代理。
复制代理就会复制相应的对象，给代理赋新值也会删除旧对象，再复制新对象。
代理类中有]]></description><category></category></item><item><title><![CDATA[c++类设计思考]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/44803823</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/44803823</guid><author>buptwxt</author><pubDate>Wed, 01 Apr 2015 11:09:29 +0800</pubDate><description><![CDATA[1、是否需要构造函数
2、数据成员函数是否需要是私有，对外隐藏
3、是否需要一个无参构造函数 class Point; Point going[10];
4、构造函数是否需要初始化所有成员
5、需要析构函数吗  成员是new的对象时
6、需要一个虚析够函数吗。一个父类指针指向一个子类对象，delete该指针时，需要对父类定义一个虚析构函数
7、是否需要复制构造函数和定义赋值操作符 构造]]></description><category></category></item><item><title><![CDATA[C中的字符串和字符数组]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/44802593</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/44802593</guid><author>buptwxt</author><pubDate>Wed, 01 Apr 2015 09:40:19 +0800</pubDate><description><![CDATA[C中并没有真正的字符串的概念，字符串常量其实是没有名字的字符数组的简写，编译器会在末尾加入\0，可以使用sizeof测试长度，strlen不会计算\0。
char *pchar = "hello"；
char str[]="hello";
数组就是靠指向数组的首地址来操作，str被弱化为一个指针，因此上面两种方式都是合法


char str[5];
str="hello";不合法]]></description><category></category></item><item><title><![CDATA[分治算法]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/44789715</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/44789715</guid><author>buptwxt</author><pubDate>Wed, 01 Apr 2015 00:01:39 +0800</pubDate><description><![CDATA[分而治之，化解为规模较小的问题，然后合并较小问题的结果，组成大问题的结果
1、问题规模缩小后能解决
2、能分成若干个规模较小的相同问题
3、解能合并（否则采用贪心法或者动态规划）
4、自问题互相独立，不包含公公子问题（否则动态规划）]]></description><category></category></item><item><title><![CDATA[tar gzip bzip2]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/44788203</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/44788203</guid><author>buptwxt</author><pubDate>Tue, 31 Mar 2015 23:18:13 +0800</pubDate><description><![CDATA[tar 归档为filename.tar
tar cvf a.tar file1 file2 file3
tar tvf a.tar
tar xvf a.tar
tar uvf a.tar file4
tar --delete -f a.tar file4


gzip gunzip  .gz
gzip file
gzip -c file > file.gz
cat a b c]]></description><category></category></item><item><title><![CDATA[c++初始化列表]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/44755721</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/44755721</guid><author>buptwxt</author><pubDate>Mon, 30 Mar 2015 19:41:34 +0800</pubDate><description><![CDATA[1、初始化列表比起在构造函数中赋值效率要高，成员为非内置类型时，直接调用拷贝构造函数；赋值方式会调用默认构造函数，再赋值；
2、常量成员，引用类型， 没有默认构造函数的类对象必须使用初始化列表]]></description><category></category></item><item><title><![CDATA[编译动态库出现问题relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/44590857</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/44590857</guid><author>buptwxt</author><pubDate>Tue, 24 Mar 2015 13:51:29 +0800</pubDate><description><![CDATA[编译 .o文件的时候加上参数 -fPIC即可]]></description><category></category></item><item><title><![CDATA[来自北邮人论坛  C++常量问题]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/39753719</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/39753719</guid><author>buptwxt</author><pubDate>Fri, 03 Oct 2014 08:50:52 +0800</pubDate><description><![CDATA[http://bbs.byr.cn/#!article/CPP/75464
#include  
using namespace std; 
int main(){ 
     const int b = 10; 
     const int &c = b; //b的引用。 
     unsigned d = (unsigned)(&b); 
     int *p = (int]]></description><category></category></item><item><title><![CDATA[NSBundle介绍]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/39719407</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/39719407</guid><author>buptwxt</author><pubDate>Wed, 01 Oct 2014 19:13:38 +0800</pubDate><description><![CDATA[bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBundle.

我们的程序是一个bundle. 在Finder中,一个应用程序看上去和其他文件没有什么区别. 但是实际上它是一个包含了nib文件,编译代码,以及其他资源的目录. 我们把这个目录叫做程]]></description><category></category></item><item><title><![CDATA[iOS开发autorelease理解]]></title><link>https://blog.youkuaiyun.com/buptwxt/article/details/39719235</link><guid>https://blog.youkuaiyun.com/buptwxt/article/details/39719235</guid><author>buptwxt</author><pubDate>Wed, 01 Oct 2014 18:54:57 +0800</pubDate><description><![CDATA[Autorelease实际上只是把对release的调用延迟了，对于每一个Autorelease，
 系统只是把该Object放入了当前的Autorelease pool中， 当该pool被释放时，该pool中的所有Object会被调用Release。




［1］在Iphone项目中，大家会看到一个默认的Autorelease pool，程序开始时创建，程序退出时销毁，按照对Aut]]></description><category></category></item></channel></rss>