我找到了下面的例子。我没有使用STL之前,我想知道它在干什么STL向量push_back()
#include <stdio.h>
#include <vector>
using namespace std;
#define maxn 100010
int N, M, L, Start;
vector <int> A[maxn];
int main()
{
int i, x, y;
scanf("%d %d %d ", &N, &M, &Start);
for (i = 1; i <= M; i++)
{
scanf("%d %d ", &x, &y);
A[x].push_back(y);
}
return 0;
}
我谈论A [X] .push_back(Y);。根据我在documentation中看到的,它在矢量的末尾添加了一个新元素,并将矢量大小增加了1。由于我正在阅读一对数字(x,y),这是否意味着在每读完x后,将会有一个和?所以最后我的向量就像[x] [y] [x'] [y'] [x''] [y'']?
题外话,这种做法是在使用点之前声明的变量,而不是* *正好一个范围。 – LogicStuff
'vector A [maxn];'是一个数组(向量)。 –
LogicStuff
如果'x> = 100010'会怎么样?在该循环中是一个超出界限的访问。 – PaulMcKenzie