#include <vector>
vector
<int> a
;
vector
<int> b
[10]
struct node
{
int a
;
}
vector
<node
>c
;
size
/empty
所有的STL容器都支持这两个方法,含义也相同。
v
.size()
v
.empty()
clear 清空vector
迭代器
vector
<int>::iterator it
; 迭代器就像STL中的指针,可以与一个整数相加,与指针类似。
begin
/end
begin返回第一个元素的迭代器,end返回最后一个元素的后一个位置。
for(int i
=0;i
<v
.size();i
++)
cout
<<v
[i
]<<endl
;
for(vector
<int>::iterator it
=v
.begin();it
!=v
.end();it
++)
cout
<<*it
<<endl
;
front
/back
v
.front()返回第一个元素,v
.back()返回最后一个元素。
push_back
/pop_back
v
.push_back(x
) 插入x
v
.pop_back() 删除最后一个元素
用vector代替邻接表存储有向图
const int MAX_EDGES
=10010;
vector
<int> ver
[MAX_EDGES
],edge
[MAX_EDGES
];
存边
void add(int x
,int y
,int z
)
{
ver
[x
].push_back(y
);
edge
[x
].push_back(z
);
}
遍历从x出发的所有边
for(int i
=0;i
<ver
[x
].size();i
++)
int y
=ver
[x
][i
],z
=edge
[x
][i
];