C++ STL常用函数介绍之vector(含例题PAT A1047和详细注释)

vector(长度根据需要而自动改变的数组)*

优势 1 普通数组有时会超内存,这样使用vector会方便许多(如果习惯用 const int maxn 大多数题也都行)

优势 2 vector可以用来以邻接表的方式存储图,这对不喜欢使用指针来实现邻接表也无法使用邻接矩阵的读者很有优势.

优势3 有的时候输出数据不确定,为了最后一个输出数据后面无空格,可以先用vector记录所有要输出的数据,最后一次输出(push_back() 和 pop_back()

vector定义
vector name
上面的定义其实相当于一维数组 name[SIZE] 不过长度可以根据需要而变化
所以二维数组定义 vector v[100]
头文件 #include

begin() 与 end()
1 v[i]与v.begin() + i 等价
2 但是在STL中 只有容器vector 和容器 string 才允许使用v.begin() + 3这种迭代器上加整数的写法
3 begin()取v的首元素地址 end() 取v的尾元素地址的下一个

vector常用函数
1 push_back(x) 作用 在vector后面添加一个元素x
2 pop_back() 作用 用以删除vector尾元素
3 size() 作用 获得vector元素个数*
4 clear() 作用 清空vector中的所有元素
5 insert(it, x) * 作用* 在vector的任意迭代器it处插入一个元素x
6 erase(it) * 作用* 删除单个元素
7 erase(first, last) * 作用* 删除【first, last)内的所有元素
8 (5)使用迭代器访问元素.

vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
    cout<<*it<<endl;

1047 Student List for Course (25分)
Zhejiang University has 40,000 students and provides 2,500 courses. Now given the registered course list of each student, you are supposed to output the student name lists of all the

你可能感兴趣的:(数据结构,c++)