c ++ std :: vector"this"是"nullptr"

Klo*_*mes -3 c++ smart-pointers vector init nullptr

由于某种原因,我不能在datacenter.cpp中使用vector _vec.它说" 这个 "是"nullptr"

请帮助,谢谢<3

datacenter.h

#pragma once
#include <iostream>
#include <vector>

class datacenter
{
public:
    datacenter();
    ~datacenter();

    void get_elements();

    std::vector<float> _vec;
};
Run Code Online (Sandbox Code Playgroud)

datacenter.cpp

#include "datacenter.h"

datacenter::datacenter(){}

void datacenter::get_elements()
{
if (_vec.empty()) { //<---- the error appears here
    std::cout << "empty" << std::endl;
    }
}

datacenter::~datacenter(){}
Run Code Online (Sandbox Code Playgroud)

main.cpp中

#include <iostream>
#include <vector>
#include "datacenter.h"

class datacenter;

int main()
{
std::unique_ptr<datacenter> dc;
dc->get_elements();
}
Run Code Online (Sandbox Code Playgroud)

YSC*_*YSC 9

麻烦来自:

std::unique_ptr<datacenter> dc;
Run Code Online (Sandbox Code Playgroud)

这不会创建一个实例datacenter,而只是一个(null)(智能)指针.您需要使用以下命令创建实例:

auto dc = std::make_unique<datacenter>();
Run Code Online (Sandbox Code Playgroud)

也可以看看