我找到了下面的例子。我沒有使用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