当我这样做时:
#include <iostream>
#include <vector>
using namespace std;
void print(vector<int> &v)
{
int i;
for(i = 0; i < v.size(); i++)
cout<<v[i]<<" ";
cout<<endl;
}
int main()
{
vector <int> A = {1,2,3,4,5};
print(A);
}
我不需要将向量设为const。 但是当我传递向量的子部分时:
#include <iostream>
#include <vector>
using namespace std;
void print(vector<int> &v) // Throws Error. Needs it as const vector<int> &v
{
int i;
for(i = 0; i < v.size(); i++)
cout<<v[i]<<" ";
cout<<endl;
}
int main()
{
vector <int> A = {1,2,3,4,5};
print({A.begin(), A.begin()+2});
}
编译器期望向量作为const(void print(const vector<int> &v)
)传递。为什么会这样?