欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++ Tips (持续更新)

程序员文章站 2022-07-02 19:19:26
...

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