1. 程式人生 > >程式設計的一些小知識點總結

程式設計的一些小知識點總結

  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; }