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  阅读(850)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示