c++ 将vector作为参数传入函数

1. 以引用或指针形式传入:
cpp
void foo(std::vector<int> &vec);  // 以引用形式传入
void bar(std::vector<int> *ptr);  // 以指针形式传入
这种方式不会复制vec,函数内操作的是vec本身。可以改变vec。例如:
cpp
std::vector<int> vec = {1, 2, 3};

void increment(std::vector<int> &v) {
    for (int &i : v) i++; 
}

int main() {
    increment(vec);
    // vec is now {2, 3, 4}
} 
2. 以值形式传入:
cpp
void baz(std::vector<int> vec); 
这种方式会复制一份vec,函数内操作的是复制品。不会改变外部的vec。例如:
cpp
std::vector<int> vec = {1, 2, 3};

void double_vec(std::vector<int> v) {
    v.insert(v.end(), v.begin(), v.end()); 
}

int main() {
    double_vec(vec);
    // vec is still {1, 2, 3}
}
 
posted @   Yohoc  阅读(854)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示