尝试在C ++中创建随机数生成器并出现错误

时间:2020-06-11 23:24:43

标签: c++

我对C ++很陌生,目前正尝试从头开始编写随机数生成器。 但是,在while语句下出现错误,并且我不知道自己在做什么错。 我有一些python的经验,所以也许我想我可能正在创建像语法一样的python而不是c ++?谢谢。

import UIKit
import Firebase

class popularViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{

    @IBOutlet var table: UITableView!

//    var models = [PhotoPost]()
    var texttt = [TextPost]()
    var phots = [PhotoPost]()
    var mixed = [MixedPhoto]()
    var switchy = [Any]()

    override func viewDidLoad() {
        super.viewDidLoad()
        gettingPosts()
        table.register(popularTableViewCell.nib(), forCellReuseIdentifier: popularTableViewCell.identifier)
        table.register(featuredTableViewCell.nib(), forCellReuseIdentifier: featuredTableViewCell.identifier)
        table.register(textTableViewCell.nib(), forCellReuseIdentifier: textTableViewCell.identifier)
        table.register(mixedTableViewCell.nib(), forCellReuseIdentifier: mixedTableViewCell.identifier)

        table.delegate = self
        table.dataSource = self

        self.table.estimatedRowHeight = 225
        self.table.rowHeight = UITableView.automaticDimension
    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(true)
    }

    func numberOfSections(in tableView: UITableView) -> Int {
        return 3
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        if section == 0{
            return mixed.count
        }
        else if section == 1{
            return phots.count
        }
        else{
            return texttt.count
        }

    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        if indexPath.section == 0{
            let cell = tableView.dequeueReusableCell(withIdentifier: mixedTableViewCell.identifier, for: indexPath) as! mixedTableViewCell
            cell.configure(with: self.mixed[indexPath.row])
            return cell
        }
        else if indexPath.section == 1{
            let cell = tableView.dequeueReusableCell(withIdentifier: popularTableViewCell.identifier, for: indexPath) as! popularTableViewCell
            cell.configure(with: self.phots[indexPath.row])
            return cell
        }
        else{
            let cell = tableView.dequeueReusableCell(withIdentifier: textTableViewCell.identifier, for: indexPath) as! textTableViewCell
            cell.configure(with: self.texttt[indexPath.row])
            return cell
        }

    }
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let vc = storyboard.instantiateViewController(withIdentifier: "commentsVC")
        vc.modalPresentationStyle = .fullScreen

        self.navigationController?.pushViewController(vc, animated: true)
    }

    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

        return UITableView.automaticDimension
    }

    func gettingPosts(){

        let db = Firestore.firestore()
        let postsRef = db.collection("posts")
        postsRef.addSnapshotListener { (querySnapshot, error) in
            guard let snapshot = querySnapshot else {
            print("Error fetching snapshots: \(error!)")
            return
            }
            snapshot.documentChanges.forEach { diff in
                if (diff.type == .added){
                    let data = diff.document.data()
                    let Name = data["username"] as! String
                    let text = data["description"]
                    let likes = data["likes"] as! Int
                    let typ = data["postType"] as! Int
                    let pfp = data["profileImage"] as! String
                    let uid = data["uid"] as! String
                    let pic = data["picture"]
                    let time = data["time"] as! String
                    let pid = data["postID"] as! String

                    if typ == 0{                                                // Text post
                        let dasDing = TextPost(numberOfComments: 0, username: Name, timestampName: time, userImageName: pfp, textName: text as! String, postID: pid)
                        self.texttt.append(dasDing)
                       self.texttt.sort(by: { $0.timestampName > $1.timestampName })
                    }
                    if typ == 1{                                                // Text + Picture post
                        let Mixed = MixedPhoto(numberOfComments: 0, username: Name, timestampName: time, userImageName: pfp, textName: text as! String, postImageName: pic as! String, postID: pid)
                        self.mixed.append(Mixed)
                        self.mixed.sort(by: { $0.timestampName > $1.timestampName })
                    }
                    if typ == 2{                                                // Picture Post
                        let Foto = PhotoPost(numberOfComments: 0, username: Name, timestampName: time, userImageName: pfp, postImageName: pic as! String, postID: pid)
                        self.phots.append(Foto)
                        self.phots.sort(by: { $0.timestampName > $1.timestampName })
                    }
                    if typ == 3{                                                // Text + Video Post

                    }
                    if typ == 4{                                                // Video  Post

                    }
                }
            }
            self.table.reloadData()
        }
    }

}

struct PhotoPost {
    let numberOfComments: Int
    let username: String
    let timestampName: String
    let userImageName: String
    let postImageName: String
    let postID: String
}

struct TextPost {
    let numberOfComments: Int
    let username: String
    let timestampName: String
    let userImageName: String
    let textName: String
    let postID: String
}

struct MixedPhoto {
    let numberOfComments: Int
    let username: String
    let timestampName: String
    let userImageName: String
    let textName: String
    let postImageName: String
    let postID: String
}

1 个答案:

答案 0 :(得分:2)

问题是生成器代码不在类的方法内部,而是在类声明本身中,这是语法错误。尝试以下类似的方法:

#include <iostream>
using namespace std;


class Random {
public:
    double oldRoot;
    double newRoot;
    int iteNum;

    Random(double aOldRoot, double aNewRoot, int aIteNum) {
        oldRoot = aOldRoot;
        newRoot = aNewRoot;
        iteNum = aIteNum;
    }

    void generate() {
        int count = 0;

        while (count <= iteNum) {
            double totalRoot = oldRoot + newRoot;
            if (totalRoot > 1.0) {
                oldRoot = newRoot;
                newRoot = totalRoot - 1.0;
            }
            else {
                oldRoot = newRoot;
                newRoot = totalRoot;
            }
            cout << oldRoot << endl;
            cout << newRoot << endl;

            count += 1;
        }
    }
};

int main() {

    Random random10(0.1412, 0.2343, 10);
    random10.generate();

    return 0;

}