C++二维向量的错误

来源:百度知道 编辑:UC知道 时间:2024/05/25 03:49:34
#include<iostream>
#include<fstream>
#include<sstream>
#include<string>
#include<vector>
using namespace std;

void Print(const vector<int> &v);
void Input(vector<vector<int> > &m);
bool FindVec(const vector<vector<int> > &m, vector<int> &v);

void main()
{ vector<vector<int> > matrix; vector<int> vec;
Input(matrix);
if( FindVec(matrix,vec) ) Print(vec);
}

void Print(const vector<int> &v)
{ for(int i=0; i<v.size(); i++)
cout << v[i] << " " ;
cout << endl;
}

void Input(vector<vector<int> > &m)
{ ifstream fin("e:\\a3.txt");
int n; fin >> n; // 设文件首行数字是数据行数
m.resize(n);
for(int i=0; i<n; i++)
{ string s; getline(fin,s); // 每行有若干数字
istringstream sin(s);

第一,FindVec函数只有声明,没有实现代码,所以不能调用;
第二,你加上的FindVec函数定义和声明函数原型中参数形式不符;
第三,若认为代码没错,可以rebuild all,一下,或许会好使

你调用的这个函数
bool FindVec(const vector<vector<int> > &m, vector<int> &v);
根本就没定义,只声明了,链接的时候当然找不到了

补充:

加的函数里面,第一个参数加const就可以链接成功了。
c++里面,有const和没const,的2个函数是不同的函数。
你之前相当于声明了函数1,调用了函数1,再给出函数2的定义,当然要报告函数1找不到的错了