我正在尝试从文件到矢量获取大约3百万个字符串。我是这样分配的
vector<string> *slownikds = new vector<string>;
当我尝试从文件中退回时:
string *line;
while (getline(slownik, *line))
{
*slownikds->push_back(*line);
}
它不起作用。如何从文件“ slownik”中推回字符串?
答案 0 :(得分:7)
请停止此操作。
std::vector
被创建,因此您不必自己为容器分配内存。 std::string
在那里,因此您不必使用char *
或使用固定大小的缓冲区。
请解决:
std::vector<string> slownikds;
std::string line;
while (getline(slownik, line)) {
slownikds.push_back(line);
}
出现“错误”的原因可能是以下三种情况之一:
*line
,因此它指向的是未初始化的内存,或者可能指向NULL
push_back
在任何情况下,不都不能像我上面那样使用指针