无法获得C ++类函数返回

时间:2017-02-14 01:22:37

标签: c++ list class object return-value

我正在尝试使用c ++编程来实现我已经在java和Python中实现的类。我试图比较这个特定班级在三种语言中的表现。基本上该类所做的是生成随机数,之后它将在列表中存储一系列唯一的随机数,然后返回列表,稍后将其发送到另一个函数进行处理。但是我仍然坚持返回此列表。我创建了一个包含必要的类声明的头文件,并将实现放在另一个源文件中。我试图在我的main方法中运行这个程序但是在成功编译之后,程序只运行到无穷大而不执行返回的方法并且没有显示错误。我必须补充一点,我刚开始学习c ++。

以下是我的代码摘录:

标题文件:

index.html

源文件:

#ifndef LOTTOGENERATORHEADER_H
#define LOTTOGENERATORHEADER_H

#include<list>
#include<map>
#include<ctime>
#include<algorithm>
#include<iterator>

class LottoGenerator {
    std::list<int> lottoListReference;
public:
    LottoGenerator(void);
    int generateRandomNumber(int maxNum);
    std::list<int> generateLottoNumbers(int, int);
    void lottoNumberOccurrences(std::map<int, int> &seriesContainer, std::list<int> &LottoNumbers);
    std::map<int, int> sortedByValue(std::map<int, int> &sortedmap);
};
#endif

/* LOTTOGENERATORHEADER_H */  

主要方法:

#include "LottoGeneratorHeader.h"
#include<iostream>



LottoGenerator::LottoGenerator() {
    srand(time(NULL)); 
}

int LottoGenerator::generateRandomNumber(int maxNum) {
    return rand() % maxNum + 1;
}

std::list<int> LottoGenerator::generateLottoNumbers(int noOfBalls, int maxLottoNumber) {
     std::cout<<"set me"<<"\n";
    if (!LottoGenerator::lottoListReference.empty())
        LottoGenerator::lottoListReference.clear();
    int rand = 0;
    for (int i = 0; i < noOfBalls; i++) {
        rand = generateRandomNumber(maxLottoNumber);
        if (std::find(LottoGenerator::lottoListReference.begin(), LottoGenerator::lottoListReference.end(), rand) != LottoGenerator::lottoListReference.end()) {
            LottoGenerator::lottoListReference.push_back(rand);
        } else {
            while (std::find(LottoGenerator::lottoListReference.begin(), LottoGenerator::lottoListReference.end(), rand) == LottoGenerator::lottoListReference.end()) {
                rand = generateRandomNumber(maxLottoNumber);
            }
            LottoGenerator::lottoListReference.push_back(rand);
        }
    }
    return LottoGenerator::lottoListReference;
}

NB :我的实施有意在所有三种语言中尽可能相似

0 个答案:

没有答案