写了一个小程序来测试载体,我不明白为什么会崩溃,有人可以帮忙吗?
#include <iostream>
#include <algorithm>
#include <vector>
void print(int* i)
{
std::cout << i << std::endl;
}
int main()
{
std::vector<int*>* intPtr;
intPtr->push_back(new int(1));
intPtr->push_back(new int(2));
intPtr->push_back(new int(3));
std::for_each(intPtr->begin(), intPtr->end(), print);
}
暂时忽略内存泄漏,这只是一个简单的例子。
答案 0 :(得分:2)
std::vector<int*> intPtr; // no need to make this a pointer.
答案 1 :(得分:1)
您忘记初始化intPtr
。尝试将该行更改为:
std::vector<int*>* intPtr = new std::vector<int*>;
答案 2 :(得分:0)
你应该像这样初始化它:
std::vector<int*> *intPtr = new vector<int*>();