注册 登录
编程论坛 C++教室

C++ vector 作为参数传递给函数问题?

hcs_xiaohan 发布于 2016-12-07 19:36, 1345 次点击
将v作为参数传递给add 实现加一,代码如下:
#include <iostream>
#include <vector>
#include <cstdlib>

using namespace std;

void add(vector<int> v);

int main() {
    vector<int> v;
    for(int i = 0; i < 15; i++)
        v.push_back(rand()%20);

    vector<int>::iterator p;
    for(p = v.begin(); p != v.end(); p++)
        cout << (*p) << ",";
    cout << endl;
   
    add(v);

    for(vector<int>::iterator p = v.begin(); p != v.end(); p++)
        cout << (*p) << ",";
    cout << endl;

    return 0;
}

void add(vector<int> & B) {
    vector<int>::iterator p;
    for(p = B.begin(); p != B.end(); p++)
       (*p) += 1;
}

编译报如下错误:
/tmp/ccQrbXVR.o: In function `main':
test1.cpp:(.text+0x11c): undefined reference to `add(std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status

请帮我看看是哪儿的问题?
1 回复
#2
rjsp2016-12-08 00:01
void add(vector<int> v);
void add(vector<int> & B)
你这眼神不好呀,尤其是编译信息已经说得清清楚楚的前提下
1