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