小编use*_*020的帖子

有什么简单的方法可以实现 std::array 和 std::vector 的算术运算?

有什么简单的方法可以为and重载各种算术运算符(+, -, *, /, +=, ...)?算术运算是按成员进行的。类似于以下内容std::arraystd::vector

template<class ContainerT, class opT>
ContainerT operator opT(ContainerT const& a, ContainerT const& b)
{
    ....
}

template<class ContainerT, class opT>
ContainerT operator opT=(ContainerT const& a, ContainerT const& b)
{
    ....
}
Run Code Online (Sandbox Code Playgroud)

c++ arrays containers vector

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

模板参数中T&和T &&有什么区别?

模板参数中T&和T &&有什么区别?例如:

template<class T> void f(T& t) {...}
template<class T> void f(T&& t) {...}
Run Code Online (Sandbox Code Playgroud)

我试试代码

template<class T>
void f(T&& t)
{
    t = 5;
}

int main()
{
    int a = 0;
    f(a); //a == 5 why?        
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我期待a = 0但= = 5,为什么?

c++ templates reference

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

在命名空间中定义双常量的最佳方法是什么?

在命名空间中定义双常量的最佳方法是什么?例如

// constant.h
namespace constant {
    static const double PI = 3.1415926535;
}

// No need in constant.cpp
Run Code Online (Sandbox Code Playgroud)

这是最好的方法吗?

c++ namespaces constants

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

如何在类中初始化c ++ 11本机指针和数组?

例如

class A
{
 int *p{};   // is this fine without giving the null pointer value 0?
 int p[3]{}; // is this fine without double braces {{ }}? std::array need.
};
Run Code Online (Sandbox Code Playgroud)

我的测试表明它们通过了intel c ++编译器.但不确定它们是否标准对不对?

c++ c++11

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

检查两个双打是否有相同符号的快速方法?

有没有快速检查两个双打是否有相同符号的方法?假设两个双打不能为0.

c# algorithm performance

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

什么是"超集子集"原则?

它说,在c ++核心指南中

这些指南是根据"超集子集"原则(Stroustrup05)设计的.它们不是简单地定义要使用的C++子集(用于可靠性,安全性,性能等).相反,他们强烈建议使用一些简单的"扩展"(库组件),这些扩展使得C++中容易出错的最容易出错的特性使用,因此可以禁止它们(在我们的规则集中).

什么是"超集子集"原则?

c++

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

如何在C++中将整数转换为固定位数的字符串?

例如,4位数字,将0转换为“0000”;和12到“0012”。

c++ 有什么好的方法吗?

抱歉没有说清楚,我的编译器不支持 snprintf,我想要一个像

std::string ToString(int 值, int 位数);

c++ string

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

如何避免类和方法的重复名称?

目前我对类名和方法名使用相同的约定.他们有一个没有前缀的主要大写字母.我不使用"Get"前缀来获取属性.但是,我在以下代码中遇到名称冲突问题

class Material
{};

class Background
{
public:
    Material* Material() const             {return m_material;}  // Name conflict
    void SetMaterial(Material* material)   {m_material = material;}

private:
    Material* m_material;
};
Run Code Online (Sandbox Code Playgroud)

什么是解决问题的最简单方法,但保持或最小化我的约定?非常感谢!

c++ naming

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

这是重命名和重新包含std :: unique_ptr的好习惯吗?

代码如下

// in ptr.h
#pragma once
#include <memory>
template<class T> using Ptr = std::unique_ptr<T>;
Run Code Online (Sandbox Code Playgroud)

所以每次我使用std :: unique_ptr时,我都包含"ptr.h"并将其用作Ptr.这是一个好习惯吗?

c++

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

使用VC++生成*.dll后*.lib在哪里?

我用VC++生成了一个*.dll.当我想使用它时,需要*.lib.但我找不到它.如何获得*.lib?谢谢.

c++ dll

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