小编Vis*_*iva的帖子

C++ STL sort()函数,二元谓词

我有一段令我困惑的代码:

   sort(data, data+count, greater<int>() );
Run Code Online (Sandbox Code Playgroud)

它是C标准库中的排序函数.我无法弄清楚第三个论点的含义.我已经读过它被称为二元谓词.这意味着什么?我如何制作自己的谓词?

c++ sorting stl

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

格式化输出流,ios :: left和ios :: right

我有这个代码:

cout << std::setiosflags(std::ios::right);
cout << setw(3) << 1 << setw(3) << 2 << '\n'; // Output two values

cout << std::setiosflags(std::ios::left);
cout << setw(3) << 1 << setw(3) << 2 << '\n'; // Output two values
Run Code Online (Sandbox Code Playgroud)

但输出并不像我预期的那样.代替:

  1  2
1  2  
Run Code Online (Sandbox Code Playgroud)

这出来了:

  1  2
  1  2
Run Code Online (Sandbox Code Playgroud)

问题是什么?我设置'std :: ios :: left'但它没有区别?

c++ iostream stream

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

c ++中的位向量

最近我听说过位向量,但我真的找不到任何关于这个主题的有用信息或教程.能否请您推荐一本关于如何实现自己的位向量类的书或快速教程?谢谢.

--- ///我无法回答我自己的问题,所以我决定编辑这篇文章.这就是我刚刚发现的:"游戏程序员的数据结构 - Ron Penton和Andre Lamothe".第4章,Bitvectors.本书详细解释了位向量,以及如何自己创建位向量类.玩得开心.

c++ bitvector

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

'char const *str' 作为模板参数

可以说我有一个模板:

template<char const *str>
class Template { ... };
Run Code Online (Sandbox Code Playgroud)

为什么不能写出下面的内容呢?

Template<"literal"> T;
Run Code Online (Sandbox Code Playgroud)

或者

char const *s = "Literal";
Template<s> T;
Run Code Online (Sandbox Code Playgroud)

为什么下面的方法有效?

char const s[] = "Literal";
Template<s> T;
Run Code Online (Sandbox Code Playgroud)

c++ templates constants

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

copy-constructor相关问题(native c ++)

可能重复:
为什么复制构造函数应该通过C++中的引用接受其参数?

我知道复制构造函数必须有一个引用作为参数,以避免对自身进行"无限次调用".我的问题是 - 为什么会发生这种情况,背后的逻辑是什么?

CExample(const CExample& temp)
{
   length = temp.length;
}
Run Code Online (Sandbox Code Playgroud)

c++ syntax class copy-constructor

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

在MSVC的并发运行时中parallel_for_each和parallel_for有什么区别?

parallel_for_each 具有以下形式:

Concurrency::parallel_for_each(start_iterator, end_iterator, function_object);
Run Code Online (Sandbox Code Playgroud)

parallel_for也有类似的形式:

Concurrency::parallel_for(start_value, end_value, function_object);
Run Code Online (Sandbox Code Playgroud)

那么究竟是什么之间的差异Concurrency::parallel_for,并Concurrency::parallel_for_each在编程中使用多个内核算法?

c++ concurrency multicore visual-studio-2010 concurrent-programming

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

除了节省空间的明显好处之外,位域是否有任何隐藏的成本或收益?

这是你如何声明一个位域:

unsigned m_bitfield1 : 2;  // a bitfield that occupies 2 bits
unsigned m_bitfield2 : 1;  // a bitfield that occupies 1 bit
Run Code Online (Sandbox Code Playgroud)

位字段只是一个具有特定比特大小的小字段.

我的问题是:我可以使用自己的算法来处理默认数据类型,例如整数或浮点数,它们占用了大量不必要的空间,作为任意大小的较小部分的集合,或者使用位字段有一些隐藏的好处吗?谢谢.

c++ bit-fields

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

非模板类型参数

我有这个模板功能:

template<int i> void f(int a[i]) { };

int main () {
   int c[10];
   f(c); // Causes an error!
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能c[10]作为非模板类​​型参数传递给模板函数?

c++ templates

4
推荐指数
3
解决办法
168
查看次数

c ++中的十六进制浮点文字

(C++)是否可以使用十六进制浮点值初始化浮点变量?

像这样的事情:

'0x011.1'//错了!

c++ floating-point hex

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

包括标题会导致错误

由于某种原因,一旦我包含我自己的头文件,我就会得到多个错误,这个文件有一个简单的类定义.这是代码:

#define WIN32_LEAN_AND_MEAN 
#include "windows.h"
//#include "CInt.h"   <--- i get multiple errors once i activate this line

HINSTANCE       hInst;
HWND            wndHandle;

bool        initWindow(HINSTANCE hInstance);

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    if (!initWindow(hInstance)) return false;

    MSG msg;
    ZeroMemory(&msg, sizeof(msg));

    while(true)
    {
        while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }

        if(msg.message == WM_QUIT) break;
    }

    return msg.wParam;
}

bool initWindow(HINSTANCE hInstance )
{
    WNDCLASSEX wcex;

    wcex.cbSize             = sizeof(WNDCLASSEX);
    wcex.style              = …
Run Code Online (Sandbox Code Playgroud)

c++ header visual-studio-2010

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