C++ Tips (持續更新)

1.將vecotr傳遞給形參的三種方式

** 函數定義方式**

function1(std::vector<std::vector<int> > vec),傳值
function2(std::vector<std::vector<int> >& vec),傳引用
function3(std::vector<std::vector<int> >* vec),傳指針

函數調用方式

function1(vec),傳入值
function2(vec),傳入引用,引用類型的修改會直接影響原來的變量
function3(&vec), 傳入地址

三種方式的效果分別爲:

  • 會發生拷貝構造

  • 不會發生拷貝構造,引用類型的修改會直接影響原來的變量

  • 不會發生拷貝構造, 指針類型的修改也會改變原來的值

2. 數組作爲形參傳遞的兩種方式

  • 注意兩種方式都是傳遞了數組的地址,因此都不會分配新的內存,不存在形參的構造。

傳遞方式

function(int a[]);
function(int *a);

傳遞方式

int a[5]={0};
function(a) //方法1
function(a) //方法2,一樣的

3. 換行表示輸入結束

vector<int> seq;         
int temp;         
while (1)        
{               
    cin >> temp;               
    seq.push_back(temp);                
    if (getchar() == '\n')                        
        break;        
}

4. 多case輸入

  • C 64位輸出請用printf("%lld")
int main() {
    int a,b;
    while(scanf("%d %d",&a, &b) != EOF)//注意while處理多個case
        printf("%d\n",a+b);
    return 0;
}
  • C++ 64位輸出請用printf("%lld")
#include <iostream>
using namespace std;
int main() {
    int a,b;
    while(cin >> a >> b)//注意while處理多個case
        cout << a+b << endl;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章