小编Q-b*_*uit的帖子

方法和函数之间的区别,在Python中与C++相比

我正在使用Code Academy的Python教程,我对方法和函数的定义有点困惑.从教程:

你已经知道了一些我们所使用(或创建)字符串的内置功能,例如.upper(),.lower(),str(),和len().

从C++来了,我想.upper().lower()将调用的方法和len()str()功能.在本教程中,这些术语似乎可以互换使用.

Python是否以C++的方式区分方法和函数?

方法和函数之间的差异不同,我问的是Python的细节.术语"方法"和"功能"似乎并不总是遵循链接问题的已接受答案中给出的定义.

python oop methods function

49
推荐指数
2
解决办法
4万
查看次数

填充对矢量

我想用8对填充矢量.每一对代表棋子中的骑士在x和y坐标中的移动.目前我正是这样做的

vector<pair<int,int>> moves;

pair<int,int> aPair;
aPair.first = -2;
aPair.second = -1;
moves.push_back(aPair);
aPair.first = -2;
aPair.second = 1;
moves.push_back(aPair);
aPair.first = -1;
aPair.second = -2;
moves.push_back(aPair);
aPair.first = -1;
aPair.second = 2;
moves.push_back(aPair);
aPair.first = 1;
aPair.second = -2;
moves.push_back(aPair);
aPair.first = 1;
aPair.second = 2;
moves.push_back(aPair);
aPair.first = 2;
aPair.second = -1;
moves[6].push_back(aPair);
aPair.first = 2;
aPair.second = 1;
moves.push_back(aPair); 
Run Code Online (Sandbox Code Playgroud)

我这样做是为了了解Std库.这似乎是解决这个问题的一种无望的低效方式.

谁有更优雅的解决方案?

c++ stl

15
推荐指数
4
解决办法
5万
查看次数

如果在QML中声明

完全是QT和QML的新手.我正在尝试设置基于两个属性格式双打之间的关系的矩形的颜色callValuehandRaiseXBB,但我得到的错误

意外令牌如果"

期望一个合格的名称ID

谁能告诉我我做错了什么?

import QtQuick 2.0

Item{
    id: hand

    property double callValue: 0.0

    property double handRaiseXBB: 100
    property string handCallColor: "green"
    property string handFoldColor: "grey"

    Rectangle {
        anchors.fill: hand
        if (hand.callValue >= hand.handRaiseXBB) {
            color: hand.handFoldColor
        }
        else {
            color: hand.handCallColor
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

user-interface qt qml qt-quick

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

无法推断出模板类型

我正在尝试将迭代器作为模板参数传递给模板方法,但编译器抱怨:

error C2783: 'void Test::Assert(std::vector<T>::const_iterator)':
could not deduce template argument for 'T'
Run Code Online (Sandbox Code Playgroud)

产生错误的代码是:

#include "stdafx.h"
#include <iostream>
#include <vector>

class Test
{
    public:
        template <typename T>
        void Assert(typename std::vector<T>::const_iterator it)
        {
            std::cout << *it << std::endl;
        }
};

int _tmain(int argc, _TCHAR* argv[])
{
    Test test;

    std::vector<double> myVec;

    test.Assert(myVec.cbegin());

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我猜有一种简单的方法可以使这项工作,因为大多数std算法可以从迭代器中推断出类型.

c++ templates template-argument-deduction

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

使用 savetxt 附加到文件

我正在尝试将数组 b 和 c 附加到 file.txt。默认行为是覆盖,我找不到有关更改此设置的任何文档。

import numpy as np
a = np.array([1.2, 2.3, 4.5])
b = np.array([6.7, 8.9, 10.11])
c = np.array([12.13, 14.15, 16.17])

np.savetxt('file.txt', a, fmt='%1.3f', newline=", ")
Run Code Online (Sandbox Code Playgroud)

谢谢

python numpy

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

混合代码和 app.config 中的 Serilog 配置

我想从代码中设置 logFileName,但我想从 app.config 文件中配置所有其他参数。如果我将一些配置放在代码中,并将一些配置放在 app.config 中,则其中一个会覆盖另一个。

这可能吗?

static private Serilog.Core.Logger CreateLogger(string logFileName)
{
    var config = new LoggerConfiguration()
                        .ReadFrom.AppSettings()
                        .WriteTo.File(logFileName, 
                                      rollingInterval: RollingInterval.Day, 
                                      rollOnFileSizeLimit: true, 
                                      fileSizeLimitBytes: 10000000, 
                                      outputTemplate: "{Timestamp:HH:mm:ss} [{Level}] [{SourceContext}] {Message}{NewLine}{Exception}")
                        .CreateLogger();

    Log.Logger = config;

    return config;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用.Net框架472

.net c# serilog

8
推荐指数
0
解决办法
643
查看次数

还可以使用旧的C++书籍来学习编程吗?

我从1999年在书架上找到了Ivor Horton的Beginning C++,我想知道它是否过时有用.我已经知道一些C++了,但是我想把书作为参考.我应该投资一本较新的书还是1999年的语言非常相似?

谢谢!

c++

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

优化的虚拟呼叫成本

当指向的类型总是相同时,我有一个关于虚拟调用成本的问题:

class Base
{
    Base() {};
    virtual void Func() = 0;
};

class Derived
    : public Base
{
    Derived() : Base() {};
    void Func() { /* Do something */ };
};

int main()
{
    Base* base = new Derived;

    for (int i = 0; i < 1000; ++i)
    {
        base->Func();
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译器会优化此虚拟调用吗?

c++

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

Mutex用于简单数据类型

我对并发很新,我在决定如何使用互斥锁时遇到了麻烦.目前,它们遍布我的代码,两个线程相互作用.这种互斥体的使用是否合适?

class Foo
{
public:
    void SetMember(int n) {  AcquireMutex(..); n_ = n; ReleaseMutex(...);}
private:
   Thread()
   {
      while(1)
      {
         AcquireMutex(..);
         // Do something with n_
         ReleaseMutex(...);
       }
   }
};
Run Code Online (Sandbox Code Playgroud)

我有很多数据成员可以通过不同的线程从外部读取和设置,我发现跟踪所有获取和释放互斥锁是一件令人头痛的问题.

c++ mutex

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

无法加载 UI 卫星 dll 'FileTracker32UI.dll'

我遇到了无法在 Visual Studio 中构建新创建的 C++/CLI 类库项目的问题:

在此处输入图片说明

即使我没有进行任何更改,我在尝试编译时也会收到错误消息:

在此处输入图片说明

严重性代码描述项目文件行抑制状态错误无法加载 UI 附属 dll 'FileTracker32UI.dll'。确保它存在于“C:\Program Files (x86)\MSBuild\14.0\bin\”的 LCID 子目录中。TestProject c:\Users\abcde\documents\visual studio 2015\Projects\TestProject\TestProject\FileTracker 1

我过去曾在同一台计算机上使用 Visual Studio 2015 创建 C++/CLI 类库项目,但没有遇到此问题。知道出了什么问题吗?

c++-cli visual-studio visual-studio-2015

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