|
求《实用C++》第47课 C++容器之动态数组vector②练习题答案
定义一个 int 类型的 vector 动态数组,将以下元素:1, 4, 3, 7, 9, 3, 6, 8, 3, 5, 2, 3, 7 插入到动态数组中。之后,使用 for 循环删除动态数组中的值为 3 的元素,并将结果输出出来!
- #include <iostream>
- using namespace std;
- #include <string>
- #include "student.h"
- #include <fstream>
- #include <vector>
- int main(int argc, char* argv[])
- {
- int a1[] = { 1, 4, 3, 7, 9, 3, 6, 8, 3, 5, 2, 3, 7 };
- vector<int>arr(a1, a1+sizeof(a1)/sizeof(int));
- vector<int>::iterator itor;
- for (itor = arr.begin(); itor != arr.end();itor++)
- {
- if (*itor==3)
- {
- arr.erase(itor);//导致程序崩溃
- }
- }
- for (itor = arr.begin(); itor != arr.end(); itor++)
- {
- cout << *itor << endl;
- }
- return 0;
- }
复制代码
然后我想通过一个vector<int*>a;先将3所在地址保存,然后再遍历删除,但是程序总是编译不通过;
求一个答案 |
上一篇: 指针数组函数的调用有问题下一篇: 48课vector的erase函数
|