记录一些小点 [随时更新] [神犇勿进] (1)

来源:互联网 发布:淘宝花卉种子 编辑:程序博客网 时间:2024/05/16 14:21

空格和换行.


单调队列更新长度时为

(i-d[i])>=k

详见http://blog.csdn.net/senyelicone/article/details/51842930.


清空数组.


printf一定不要加&,同理scanf一定要加&。%d之类的对应完全。


开数组一定要开对!!!(大5~6,二倍之类的条件)


const double maxx=1e50;  //表示maxx为10的50次方~


abs()整数绝对值,fabs()...

double ab(double u)
{
return u>0 ? u:-u;
}


for(j=i-1;b[i]-b[j]<d[j];j--);


异或  (XOR、EOR、EX-OR)  “^ ”

d = a ^ b ^ c   →   a = d ^ b ^ c.
a ^ b ^ a = b.


Edge& e=edges[G[z][i]];  //标记:可更改原数 


for(;;)  //死循环

struct内可包含函数


exit(0)作用是无条件的退出程序,括号里可以是任何整型常量,作用都是一样的;
可以根据习惯设置不同的值表示不同原因的退出。exit(0)可以在正常退出次程序的运行,而exit(1)的是由于错误导致的结束.
exit(3)也行。


bool operator<(node r1,node r2) {     //非常重要 (sort中使用)(“<”是要修改的符号)(感谢多倍体隐性纯合大巨SilverNebula的帮助)
    return r1.t<r2.t;
}

初始化初始化初始化!


char c;

if(c=='D')  //D一定要加单引号(不是双引号~)


Ascii码不记得的时候输一下(char)。

 

    stack<int> num;

    stack<char> sym;

    x=num.top();

    num.pop();

    num.push(x);

    calc();

 

队列

    #include<queue>

    using namespace std;  //非常重要

   queue<Type> M   //定义一个queue的变量

    M.empty()    //查看是否为空范例,是的话返回1,不是返回0;

    M.push()    //从已有元素后面增加元素   
    M.size()    //
输出现有元素的个数      
    M.front()    //
显示第一个元素          
    M.back()    //
显示最后一个元素        
    M.pop()    //
清除第一个元素          


字符串

    #include<cstring>

    char a[N],b[N];

    memset(a,0,sizeof(a));

    memset(b,0,sizeof(b));

    scanf("%s%s",a,b);

    l1=strlen(a);

    l2=strlen(b);

 

记一种神奇的输入字符串方法

    scanf("%s",s+1);

  同时长度也要写成这个样子:

    n=strlen(s+1);

 

三目运算符

    a  > b ? a : b

 

    memset(f,1,sizeof f);(老师没有加括号呢)

 

一种神奇的输入法

    while(scanf("%s",s1) != EOF) { if(scanf("%s",s2) == EOF) 

 

另一种更神奇的输入法

    while(scanf("%s%s",s1,s2)==2)

                                                           ↑

            这个是输入字符串个数(没有加会很悲伤,还不容易检查)

 

vector

         1 基本操作

           (1)头文件  #include<vector>.

           (2)创建vector对象  vector<int> vec;

           (3)尾部插入数字  vec.push_back(a);

           (4)使用下标访问元素  cout<<vec[0]<<endl  (下标是从0开始的);

           (5)使用迭代器访问元素.

                 vector<int>::iterator it;for(it=vec.begin();it!=vec.end();it++)

                 cout<<*it<<endl;

           (6)插入元素   vec.insert(vec.begin()+i,a)  在第i+1个元素前面插入a;

           (7)删除元素   vec.erase(vec.begin()+2)  删除第3个元素

                                  vec.erase(vec.begin()+i,vec.end()+j)  删除区间[i,j-1];区间从0开始

           (8)向量大小  vec.size();

           (9)清空:vec.clear();

 

#define maxn 101  没有分号!!


网页上看到的神奇开字符串方法

  vector<string> v1; // 创建空容器,其对象类型为string类

  vector<string> v2(10); // 创建有10个具有初始值(即空串)的string类对象的容器
  vector<string> v3(5, "hello"); // 创建有5个值为“hello”的string类对象的容器
  vector<string> v4(v3.begin(), v3.end()); // v4是与v3相同的容器(完全复制)

3 0