小编Maj*_*aha的帖子

为什么size_t和unsigned int比int慢?

我正在使用下面的简单交换排序算法在Windows中的Visual Studio项目中尝试不同的整数类型.处理器是英特尔.代码是在Release x64中编译的.优化设置为"最大化速度(/ O2)".与编译设置对应的命令行是

/permissive- /GS /GL /W3 /Gy /Zc:wchar_t /Zi /Gm- /O2 /sdl /Fd"x64\Release\vc141.pdb" /Zc:inline /fp:precise /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /Gd /Oi /MD /Fa"x64\Release\" /EHsc /nologo /Fo"x64\Release\" /Fp"x64\Release\SpeedTestForIntegerTypes.pch" /diagnostics:classic 
Run Code Online (Sandbox Code Playgroud)

代码本身:

#include <ctime>
#include <vector>
#include <iostream>

void sort(int N, int A[], int WorkArray[]) // exchange sort
{
    int i, j, index, val_min;
    for (j = 0; j < N; j++)
    {
        val_min = 500000;
        for (i = j; i < N; i++) …
Run Code Online (Sandbox Code Playgroud)

c++ int performance size-t

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

Lambda函数捕获错误的“ this”指针

我在制作一个包含lambda表达式和共享工作指针的普通C ++项目时遇到了问题。该项目在Visual Studio,Debug,x64中。这是我的代码。

Class1.h:

#pragma once
#include <functional>

class Class1
{
    int m_data;
    const int* m_data_ptr;
public:
    std::function<int(int)> m_func;
    Class1(int, int);
    void Assign(const int&);
};
Run Code Online (Sandbox Code Playgroud)

Class2.h:

#pragma once
#include "Class1.h"

class Class2
{
    Class1 m_class1obj;
public:
    Class2(int, int);
    void Assign(const int&);
    int Compute(int);
};
Run Code Online (Sandbox Code Playgroud)

main.cpp:

#include <iostream>
#include "Class1.h"
#include "Class2.h"

Class1::Class1(int i, int j) : m_data(j), m_data_ptr(nullptr)
{
    m_func = [i, this](int x)
    {
        int val = *m_data_ptr;
        return (val + m_data + i)*x;
    };
    std::cout << "Creating class1 …
Run Code Online (Sandbox Code Playgroud)

c++ lambda shared-ptr

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

标签 统计

c++ ×2

int ×1

lambda ×1

performance ×1

shared-ptr ×1

size-t ×1