我需要从另一个类的 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)