如何将字符串分配给向量(两者都在堆上)

Are*_*ski -5 c++ string heap pointers vector

我试图从文件到向量获得大约3百万个字符串.我像这样分配了它

vector<string> *slownikds = new vector<string>;
Run Code Online (Sandbox Code Playgroud)

当我尝试从这样的文件中推回时:

string *line;   
while (getline(slownik, *line))
    {
            *slownikds->push_back(*line);
    }
Run Code Online (Sandbox Code Playgroud)

它不起作用.如何从文件"slownik"中推回字符串?

sma*_*c89 7

请停止这个.

std::vector已创建,因此您不必自己为容器分配内存.std::string是这样你不必使用char *或使用固定大小的缓冲区.

请修理:

std::vector<string> slownikds;
std::string line;   
while (getline(slownik, line)) {
    slownikds.push_back(line);
}
Run Code Online (Sandbox Code Playgroud)

您收到"错误"的原因可能是以下三种情况之一:

  1. 你没有初始化你的*line,所以它指向未初始化的内存或可能NULL
  2. 您正尝试push_back通过指针成员访问运算符访问成员函数
  3. foob​​ar的东西

无论如何,不是像我上面那样使用指针就是答案