小编Jos*_*ato的帖子

从另一个类取消引用时 C++ 矢量值发生变化

我需要从另一个类的 std::vector 构造一个 std::discrete_distribution 。然而,我得到的一切都是错误的

无法创建大于 max_size() 的 std::vector

我试图将代码简化为基础(也错过了所有包含的内容,因为其他一切都工作正常)。另外,在花费了很短的时间尝试调试之后,我使用了一些控制台打印来找到我认为导致此问题的问题。

A类.h

class ClassA.h {
private:
    std::vector<double> weights;
public:
    ClassA();
    [[nodiscard]] std::vector<double> getWeights();
Run Code Online (Sandbox Code Playgroud)

A类.cpp

ClassA::ClassA() {
   
    for (int i = 0; i < 50; i++) {
        initialPheromone.emplace_back(1);
        std::cout << " " << initialPheromone[i]; // TESTING
    }
}

std::vector<double> ClassA::getWeights() {
    return weights;
}
Run Code Online (Sandbox Code Playgroud)

B.h类

class ClassB {
private:

    ClassA *variable;

    void someFun();

Run Code Online (Sandbox Code Playgroud)

B类.cpp

ClassB::ClassB(ClassA *classA1){
    variable = classA1;
}

void someFun() { 

    // TESTING
    for (auto thing = variable->getWeights().begin();
        thing != …
Run Code Online (Sandbox Code Playgroud)

c++ clion c++23

0
推荐指数
1
解决办法
83
查看次数

标签 统计

c++ ×1

c++23 ×1

clion ×1