小编Aze*_*eem的帖子

C++中的POD类型是什么?

我有几次遇到这个术语POD型.这是什么意思?

c++ types c++-faq

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

为什么Java不提供运算符重载?

从C++到Java,明显没有答案的问题是为什么Java不包含运算符重载?

是不是Complex a, b, c; a = b + c;比简单得多Complex a, b, c; a = b.add(c);

是否存在已知的原因,有效的论据,使运算符重载?这个理由是武断的,还是输给了时间?

c++ java operator-overloading

394
推荐指数
10
解决办法
16万
查看次数

thread_local在C++ 11中意味着什么?

我对thread_localC++ 11中的描述感到困惑.我的理解是,每个线程在函数中都有唯一的局部变量副本.所有线程都可以访问全局/静态变量(可能使用锁进行同步访问).和thread_local变量的所有线程都是可见的,但只能由他们为其定义线程修改?这是对的吗?

c++ multithreading thread-local thread-local-storage c++11

109
推荐指数
3
解决办法
6万
查看次数

如何在C++中使用基类的构造函数和赋值运算符?

我有一个B包含一组构造函数和赋值运算符的类.

这里是:

class B
{
 public:
  B();
  B(const string& s);
  B(const B& b) { (*this) = b; }
  B& operator=(const B & b);

 private:
  virtual void foo();
  // and other private member variables and functions
};
Run Code Online (Sandbox Code Playgroud)

我想创建一个D只覆盖函数的继承类,foo()不需要进行其他更改.

但是,我希望D拥有相同的构造函数集,包括复制构造函数和赋值运算符B:

D(const D& d) { (*this) = d; }
D& operator=(const D& d);
Run Code Online (Sandbox Code Playgroud)

我是否必须重写所有这些D,或者有没有办法使用B的构造函数和运算符?我特别想避免重写赋值运算符,因为它必须访问所有B的私有成员变量.

c++ inheritance constructor assignment-operator

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

为什么复制赋值运算符必须返回引用/ const引用?

在C++中,我不清楚从复制赋值运算符返回引用的概念.为什么复制赋值运算符不能返回新对象的副本?另外,如果我上课A,还有以下内容:

A a1(param);
A a2 = a1;
A a3;

a3 = a2; //<--- this is the problematic line
Run Code Online (Sandbox Code Playgroud)

operator=定义如下:

A A::operator=(const A& a)
{
    if (this == &a)
    {
        return *this;
    }
    param = a.param;
    return *this;
}
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading copy-constructor assignment-operator

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

如何将std :: chrono :: time_point转换为带有小数秒的日历日期时间字符串?

如何将std :: chrono :: time_point转换为带有小数秒的日历日期时间字符串?例如:"10-10-2012 12:38:40.123456".

c++ datetime std c++11 c++-chrono

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

C++ 11 STL容器和线程安全

我无法找到有关此信息的最新信息.

C++ 11版本的STL容器是否保证了一定程度的线程安全性?

由于性能原因,我确实希望他们不这样做.但话说回来,这就是为什么我们同时拥有std::vector::operator[]std::vector::at.

c++ multithreading stl c++11

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

我如何获得/使用LibUUID?

我正在尝试替换一个调用,::CoCreateGUID因此我可以在Linux上的C++程序中生成GUID.

我知道libuuid支持这个,我已经读过这个问题了.

我对Ubuntu/GCC/Linux有点新意,所以我开始这样:

#include <uuid/uuid.h>
Run Code Online (Sandbox Code Playgroud)

而现在我被卡住了!:) G ++找不到uuid.h,我不知道如何获取/找到它.

linux uuid gcc guid

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

如何缩小std :: vector的大小?

std::vector当我不再需要以前预留的空间时,有没有办法调整容量以降低容量?

c++ stl vector

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

在对象向量上使用find_if

我有一个看起来如下的向量:

class Foo
{
    //whatever
};

class MyClass
{
    int myInt;
    vector<Foo> foo_v;
};
Run Code Online (Sandbox Code Playgroud)

让我们说,在main:

int main (void)
{
    vector<MyClass> myClass_v;
}
Run Code Online (Sandbox Code Playgroud)

我想找到一个对象myClass_vmyInt == bar.我不在乎foo_v.我想过使用这个std::find_if功能:

std::find_if(myClass_v.begin(),myClass_v.end(),condition);
Run Code Online (Sandbox Code Playgroud)

bool MyClass::condition(MyClass mc)
{
    if(mc.myInt==5)
        return true;
    else
        return false;
}
Run Code Online (Sandbox Code Playgroud)

然而,编译器说这condition()是缺少参数.你能告诉我我做错了什么吗?我认为这std::find_if会叫condition(*First),有First是一个指向myClass对象.

或者还有另一种做同样事情的好方法吗?

c++ vector

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