c++ 容器下像这样进行下标赋值会报错
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> q;
q[0] = 0;
for (auto b : q)
{
cout << b << endl;
}
getchar();
}
原因是因为此时容器内并没有元素,所以需要进行初始化或者用push_back进行赋值操作。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> q(1);
q[0] = 0;
for (auto b : q)
{
cout << b << endl;
}
getchar();
}
或者
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> q;
q.push_back(0);
for (auto b : q)
{
cout << b << endl;
}
getchar();
}
都是可以的