小编tty*_*ty6的帖子

在具有相同种子的不同OS上实现相同的随机数序列

有没有办法在不同的操作系统中使用相同的种子实现相同的随机数字序列?我试过这段代码:

std::default_random_engine engine(seed);
std::uniform_int_distribution<int> dist(0, N-1);
Run Code Online (Sandbox Code Playgroud)

如果我在一台机器上使用相同的种子多次运行此代码,则dist(引擎)的顺序是相同的,但在不同的操作系统序列上是不同的.

c++ random c++11

32
推荐指数
1
解决办法
2013
查看次数

ruby如何在scanf样式中读取用户输入,就像在C++中一样

我是Ruby的新手.我需要从用户输入(n)数字读取,在C++中我使用此代码

for(i=0;i<N;i++)
{
  scanf("%d",&array[i]);
}
Run Code Online (Sandbox Code Playgroud)

此代码读取由任何空格(制表符,空格,换行符)分隔的完全(n)数字.

我怎么能在红宝石中做到这一点?

在Ruby中我尝试这样做

require 'scanf'
n = scanf("%d");
arr = Array.new()
n.times { arr << scanf("%d") }
Run Code Online (Sandbox Code Playgroud)

但是当我像这样输入字符串时,这段代码不起作用:

1   4    8
Run Code Online (Sandbox Code Playgroud)

但如果我输入这个,工作正常

1
4
8
Run Code Online (Sandbox Code Playgroud)

c++ ruby scanf

6
推荐指数
2
解决办法
3155
查看次数

Qt QQmlApplicationEngine拒绝显示qml代码

我有这个专业档案

QT += qml quick widgets
TARGET = sPassKeeper
include(src/src.pri)
include(qml/qml.pri)
RESOURCES += \
    resources.qrc
Run Code Online (Sandbox Code Playgroud)

在src pri和qml pri中只有单行qml.pri

OTHER_FILES += \
    qml/main.qml
Run Code Online (Sandbox Code Playgroud)

src.pri

SOURCES += \
    src/main.cpp
Run Code Online (Sandbox Code Playgroud)

在main.cpp中得到了这段代码

#include <QApplication>
#include <QQmlApplicationEngine>
#include <QtDebug>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QQmlApplicationEngine engine(QUrl("qrc:/new/prefix1/qml/main.qml"));
    qDebug() << "Ok engine created";
//    Q_UNUSED(engine)
    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

main.qml

import QtQuick 2.0
import QtQuick.Controls 1.1

ApplicationWindow{
    title: "sPassKeeper"
    Button{
        text: "Hello"
    }
}
Run Code Online (Sandbox Code Playgroud)

结果得到了这个输出

启用QML调试.只能在安全的环境中使用它.好的引擎创建了

没有显示任何内容,也没有完成处理.

qt qml

4
推荐指数
1
解决办法
3026
查看次数

如何在gdb控制台模式下捕获新线程?

我正在从 gdb 运行我的 Qt 应用程序,并且我想在新线程创建时停止。(当 gdb 打印消息时[New Thread address (LPW number)].

我已经设置了断点b __pthread_create_2_1。这使我能够捕捉到大部分新线程的打印。但我仍然有一些未捕获的新线程。我还能做什么来捕捉他们的创作?

c++ linux debugging qt multithreading

4
推荐指数
1
解决办法
1387
查看次数

如何在 Google Test 中为一个夹具运行多个测试用例?

假设我有一个名为ProfileTest继承的 Google Test 固定装置,::testing::TestWithParams<T>它创建了一个解析器:

class ProfileTest:

public ::testing::TestWithParam<std::tuple<std::string,std::string>>{

public:
    QString getName(){
        return QFileInfo(*m_file).fileName();
    }

protected:
    void SetUp(){

        m_profile = new Profile();

        m_file = new QFile(std::get<0>(GetParam()).c_str());
        m_file->open(QIODevice::WriteOnly | QIODevice::Text);
        m_file->write(std::get<1>(GetParam()).c_str());
        m_file->close();

    }
    void TearDown(){

        delete m_file;

        delete m_profile;
    }

    Profile* m_profile;
    QFile *m_file;
};
Run Code Online (Sandbox Code Playgroud)

参数化测试用例:

TEST_P(ProfileTest, TestProfileGoodFormedContent){
    ASSERT_NO_THROW(m_profile->readProfile(QFileInfo(*m_file)));
    ASSERT_STREQ(m_profile->name(), getName());
    ASSERT_GE(m_profile->getProfileConfigurations().size(),1);
}
Run Code Online (Sandbox Code Playgroud)

我添加TEST_CASE了格式良好的内容,任何东西都很好用。

现在我想添加TEST_CASE格式错误的内容,但TestProfileGoodFormedContent TEST_P不适合测试不良内容。

我想我应该添加一个 new TEST_P,但它会fixture(ProfileTest)带来一个错误,即所有测试用例都将提供给任何TEST_P具有ProfileTest作为夹具的测试用例。

我应该怎么做才能同时测试格式正确的内容和格式错误的内容?

c++ testing qt unit-testing googletest

4
推荐指数
1
解决办法
756
查看次数

在c ++ 11风格中输入类型转换的正确方法?

我有一个这样的课:

class A {
    void init(int a){
    _data.resize(a); //! (1)
    }

    //other parts of the code are not important ...
private:
    std::list<std::vector<double>> _data;
}
Run Code Online (Sandbox Code Playgroud)

在(1)中,我收到了警告:

implicit conversion from int to size_type(aka unsigned long)
Run Code Online (Sandbox Code Playgroud)

我想知道摆脱那个警告的正确方法是什么?也许是这样的:

_data.resize(static_cast<decltype(_data)::size_type>(a)
Run Code Online (Sandbox Code Playgroud)

注意:我猜代码应该改为:

init(size_t a) 
Run Code Online (Sandbox Code Playgroud)

但是我们假设我们不能改变类接口.

c++ casting c++11

3
推荐指数
1
解决办法
833
查看次数

在c ++代码中奇怪地使用void

以下是关于C++中异步任务的演示文稿中的一些代码

template <class T> class Future<T>{
  //something
  void  foo(std::function<void(T)> cb);    
  //something
};
Run Code Online (Sandbox Code Playgroud)

什么void(T)意思?

c++ std

2
推荐指数
2
解决办法
187
查看次数

Heroku轨道角js编译资产

我有问题将我的js文件部署到heroku.当我为我的角度模块添加组件时问题就开始了 var keysApp = angular.module('keys',['mgo-angular-wizard']);

所以application.js中的代码

//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require bootstrap-sprockets
//= require_directory ./bootstrap
//= require mandrill/json2
//= require mandrill/mandrill.min
//= require libs/underscore-min
//= require angular/angular
//= require angular/angular-wizard.min

(function(){
    var keysApp = angular.module('keys',['mgo-angular-wizard']);

    keysApp.controller('KeysServiceController', function($scope){


        $scope.keysServiceModel = keysServicePriceGlobal;


        $scope.chosen = "";

        $scope.chosenPoint = "";

        $scope.userName = undefined;
        $scope.userEmail = undefined;
        $scope.userPhone = undefined;


        var myMap;
        var myGroup;


        var orderMailer = new mandrill.Mandrill('');

        ymaps.ready(init);

        function init(){

            myMap = new ymaps.Map("map", { center: [59.939095,30.315868], …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails heroku angularjs ruby-on-rails-4

2
推荐指数
1
解决办法
837
查看次数

c#TrimEnd删除多于需要的?

这是调试器.我不明白为什么TrimEnd删除's'字符. 在TrimEnd之前 TrimEnd()之后 TrimEnd之后 有什么建议?

recPath是类中的私有字符串.码:

        recPath = "";
        recursiveFindPathRoot(node);
        string[] argv = Regex.Split(recPath, "\\\\");

        //Current root path
        string rootdat = argv[0];

        //Current lastkey
        string valdat = argv[argv.Length - 3];
        string lastkey = valdat + "\\\\";

        string[] val_dat =  Regex.Split( valdat , "--");

        //Getting value and data
        string value = val_dat[0];
        string data = val_dat[1];
        string caption = value;

        CollectDataInput("Please edit selected key", caption, out value, out data);

        recPath = recPath.TrimEnd(lastkey.ToCharArray());
        recPath = recPath.Replace(@"\\", @"\");
Run Code Online (Sandbox Code Playgroud)

.net c# windows registry

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