2019.3.6错误经验

1.vc 6.0里的string没有clear()这个成员函数。

2.vector<char> S cin>>S;S都没初始化,想当然的错误。

3.unique()去重函数,是对有序结构用的,且返回重复部分开头元素的迭代器。erase.(unique(V.begin(),V.end()),V.end());即对V结构去重

4.做题时可以用 #define rep(i,n,t) for(int i=(n);i<(t);i++)   来代替简单for循环,注意#define里设计到替换的数的地方要加括号。同理还有memset和push_back函数

5.简单的交换两个数可以用  #define Swap(a,b) {a=a^b,b=a^b,a=a^b} 来完成^为取异或。

 异或运算符两侧的数,相同为0不同为1,异或有交换律,分配律和结合律;对于任何数x,都有x^x=0,x^0=x;

   则可以翻译为a=a^b     b=a^b^b即b=a    (后边的b^b为0且a^0==a)       a=a^b^a=b(a换成了a^b,  b换成了a,两个a结合为0,b^0==b)

posted @ 2019-03-06 19:58  超融合  阅读(133)  评论(0编辑  收藏  举报