編程的一些小知識點總結

  1. 1e6+5 = 1000005
    表示很大的數時,以前都是瘋狂巧零,如果用1e6+5 = 1000005來代替的話會方便很多,而且也不容易出錯。

  2. int mid=(l+r)>>1;//比特操作
    用二進制的移位操作,來進行簡單的乘除法,左移(>>)相當於乘,右移(<<)相當於除

  3. fill函數,fill與memset函數的區別
    因爲memset函數按照字節填充,所以一般memset只能用來填充char型數組,(因爲只有char型佔一個字節)如果填充int型數組,除了0和-1,其他的不能。因爲只有00000000 = 0,-1同理,如果我們把每一位都填充“1”,會導致變成填充入“11111111”
    而fill函數可以賦值任何,而且使用方法特別簡便
    具體看小姐姐的博客:http://blog.csdn.net/liuchuo/article/details/52296646

  4. stoi / atoi
    將string 轉化int的方法
    stoi是string庫中的函數,他的參數是string
    ato是c裏面的函數,他們都可以將字符串轉爲int,參數是const char*,因此在用string時,必須調c_str()方法將其轉爲char*的字符串。
    比如
    string s=”123”;
    int v=atoi(s.c_str());
    int u=stoi(s);

  5. reverse() 反向

#include<algorithm>
#include<iostream>

int main()
{
    int a[10] = {};
    for(int i=0;i<10;i++)
    {
        a[i]=i;
    }
    //轉換0~5下標的元素
    std::reverse(a,a+5);
    for(int i=0;i<10;i++)
    {
        std::cout<<a[i]<<std::endl;
    }
    return 0;
}
  1. ascii碼
    a的ASCII碼97,記二進制:0110 0001
    A的ASCII碼65,記二進制:0100 0001
    剛好差了32

  2. string append方法的常用用法
    添加幾個相同的字符:
    如str1.append(5, ‘.’);
    詳情:http://blog.csdn.net/air_wswn/article/details/7785739

  3. sscanf和sprintf
    http://blog.csdn.net/noodies/article/details/4386570
    http://blog.csdn.net/sjf331/article/details/339254

  4. 向下取整和向上取整
    http://blog.csdn.net/fightingforcv/article/details/50491311

  5. substr複製
    http://blog.csdn.net/liuchuo/article/details/54599840

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章