小编Sou*_*abh的帖子

在c ++中使用初始化列表时的奇怪行为

我试图使用初始化列表初始化字符串向量.但我得到一些奇怪的行为.如果构造函数中有多个参数,则它可以工作,但如果这是唯一的参数,则会给出错误.请参阅下面的代码以了解

// option.h file

#ifndef __OPTION_H__
#define __OPTION_H__

#include <string>
#include <vector>

namespace CppOptParser {

    class Option
    {
        std::vector<std::string> names;
        std::string description;
    public:
        // constructors
        Option(const std::vector<std::string>& names);
        Option(const std::vector<std::string>& names, const std::string& description);
        // destructor
        ~Option();
    };
} // namespace CppOptParser

#endif /* __OPTION_H__ */


// option.cpp file

#include "option.h"

namespace CppOptParser {

    Option::Option(const std::vector<std::string>& names)
    {
        this->names = names;
    }

    Option::Option(const std::vector<std::string>& names, const std::string& description)
    {
        this->names = names;
        this->description = description;
    }
    Option::~Option() {}

} // …
Run Code Online (Sandbox Code Playgroud)

c++ constructor visual-studio c++11 visual-studio-2013

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

unique_ptr 的默认值

我很难理解 unique_ptr 的默认值。
cpp 参考我看到有两个 unique_ptr 的构造函数说它不拥有任何东西
没有什么意味着nullptr

constexpr unique_ptr() noexcept;
constexpr unique_ptr( std::nullptr_t ) noexcept;
Run Code Online (Sandbox Code Playgroud)

我在下面创建了一个小例子。如果我检查 nullptr,它返回 true。这种行为有保证吗?

#include <memory>
#include <vector>
#include <iostream>

class A {
  public:
    A(int i) :m_i(i) {}
    ~A() {}
    int getI() { return m_i; }
  private:
    int m_i;
};

int main() {
    std::unique_ptr<A> a;
    if(a == nullptr) {
     std::cout << "A is null\n";   
    }
    std::vector<std::unique_ptr<A>> vec;
    vec.resize(5);
    for(size_t i = 0; i < vec.size(); i++) {
        if(vec[i] …
Run Code Online (Sandbox Code Playgroud)

c++ gcc unique-ptr

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

在编码比特流中查找帧大小

我正在使用HM 12.1参考代码.我必须从编码的h.265比特流中找到以字节或KB为单位的帧大小.我对视频处理很新,我陷入了困境.请帮忙!

video video-processing h.265 hevc

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

Qt GUI在使用waitForFinished时冻结.替代方案?

我需要做的是
我正在构建一个运行exe的qt应用程序并将其输出传递给其他exe.(在我的情况下ffmpeg | x265)
我做了什么

QProcess ffmpeg;
QProcess x265;
ffmpeg.setStandardOutputProcess(&x265);
x265.setProcessChannelMode(QProcess::ForwardedChannels);
ffmpeg.start(ffmpegArgs);
x265.start(x265Args);
if(!ffmpeg.waitForStarted())
 return;
bool retval = false;
while ((retval = x265.waitForFinished(-1)))
{}
ffmpeg.close();
x265.close();
Run Code Online (Sandbox Code Playgroud)


每件事情都很好,但是当流程运行时,GUI会冻结.
我试图解决这个问题

void Basic::on_btnEncode_clicked()
{
    if(fileContainer -> getQueue() -> rowCount() == 0) {
        QMessageBox msg;
        msg.setText("No Input to Convert");
        msg.setIcon(QMessageBox::Information);
        msg.exec();
    }
    QString file;
    int bitRate;
    QString preset;
    QString ffmpegArgs;
    QString x265Args;
    bitRate = ui->sldBitRate->value();
    preset = mapPreset(ui->sldPreset->value());
    for(int i = 0; i < fileContainer->getQueue()->rowCount(); ++i)
    {
        file = QString("\"") +  fileContainer->getQueue()->item(i, …
Run Code Online (Sandbox Code Playgroud)

c++ qt qprocess

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

在python中使用compile和eval时出现奇怪的问题

我正在尝试使用python eval解析和评估公式并进行编译。在一种情况下,它正在工作,在其他情况下,它没有工作。见下文:这工作正常

>>> formula = '(00*3600)+(03*60)+10'
>>> eval(compile(formula, '<string>', 'eval'))
190
Run Code Online (Sandbox Code Playgroud)

但这给出了错误

>>> formula = '(00*3600)+(08*60)+53'
>>> eval(compile(formula, '<string>', 'eval'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    (00*3600)+(08*60)+53
                ^
SyntaxError: invalid token
Run Code Online (Sandbox Code Playgroud)

请帮忙。我听不懂 我正在使用Python 2.7.5

python eval python-2.7

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