小编Ant*_*n K的帖子

Go中的int和int64有什么区别?

我有一个包含整数的字符串(已从文件中读取).

我正在尝试将其转换stringint使用strconv.ParseInt(). ParseInt要求我提供一个bitsize(位大小0,8,16,32和64对应于int,int8,int16,int32和int64).

从文件读取的整数很小(即它应该适合普通的int).但是,如果我传递0的bitsize,我会得到类型的结果int64(可能是因为我在64位操作系统上运行).

为什么会这样?我如何获得正常的int?(如果有人对何时以及为什么我应该使用不同的int类型进行快速入门,那就太棒了!)

编辑:我可以使用将int64转换为普通的int int([i64_var]).但我仍然不明白为什么ParseInt()在我请求0的位数时给我一个int64.

go

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

使用并行FOR循环节省时间

我有一个关于并行循环的问题.我有以下代码:

    public static void MultiplicateArray(double[] array, double factor)
    {
        for (int i = 0; i < array.Length; i++)
        {
            array[i] = array[i] * factor;
        }
    }

    public static void MultiplicateArray(double[] arrayToChange, double[] multiplication)
    {
        for (int i = 0; i < arrayToChange.Length; i++)
        {
            arrayToChange[i] = arrayToChange[i] * multiplication[i];
        }
    }

    public static void MultiplicateArray(double[] arrayToChange, double[,] multiArray, int dimension)
    {
        for (int i = 0; i < arrayToChange.Length; i++)
        {
            arrayToChange[i] = arrayToChange[i] * multiArray[i, dimension];
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在我尝试添加并行功能: …

.net c# parallel-extensions

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

shared_ptr与malloc和免费

我在大型应用程序中工作,包含c和cpp.所有文件都保存为cpp扩展名,但代码以c风格编写.我的意思是它是定义结构而不是类通过malloc和realloc和calloc分配内存.最近他们已经安装了boost库所以我打算使用我现有的代码库所以我有一些以下的问题.

  1. 我可以将std :: shared_ptr与malloc和free一起使用.
  2. 如果是,有人能指出我的示例代码库吗?
  3. 如果我在我的应用程序中创建std :: shared_ptr并将此指针传递给另一个使用malloc或calloc的函数,它会影响任何功能吗?

或者换句话说:

对于以下代码,如何使用std :: shared_ptr实现类似功能:

void allocateBlocks(int **ptr, int *cnt)
{
    *ptr = (int*)malloc(sizeof(int) * 10);
    *cnt = 10;
    /*do something*/ 
}

int main()
{
    int *p = NULL;
    int count = 0;
    allocateBlocks(&p, &count);
    /*do something*/

    free(p);
}
Run Code Online (Sandbox Code Playgroud)

我们调用一些函数,它们接受双指针并在其应用程序中填充结构并使用malloc.我们可以将这些指针分配给std :: shared_ptr吗?例如:

typedef struct txn_s
{
    int s;
    int d;
    int *e;
} txn_t;

typedef boost::shared_ptr<txn_t> tpointer;

tpointer((txn_t*)::malloc(sizeof(txn_t),::free));
Run Code Online (Sandbox Code Playgroud)

c++ boost shared-ptr scoped-ptr

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

Visual Studio在重建之前可以提示吗?

在重建之前有什么方法可以让Visual Studio提示,或者任何其他方式可以让它更容易避免命中"Rebuild"而不是"Build"?

当我点击"Build"时,当我右键单击一个项目并选择"Rebuild"时,我浪费了无数个小时.

这适用于本机C++解决方案.

c++ visual-studio

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

添加int和uint

我对以下示例中的C#编译器行为感到惊讶:

int i = 1024;
uint x = 2048;
x = x+i;     // A error CS0266: Cannot implicitly convert type 'long' to 'uint' ...
Run Code Online (Sandbox Code Playgroud)

似乎int + uint可以溢出.但是,如果uint更改为int,则错误消失,就像int + int无法溢出一样:

int i = 1024;
int x = 2048;
x = x+i;     // OK, int
Run Code Online (Sandbox Code Playgroud)

而且,uint + uint = uint:

uint i = 1024;
uint x = 2048;
x = x+i;     // OK, uint
Run Code Online (Sandbox Code Playgroud)

这似乎完全模糊不清.

为什么int + int = int和 …

c#

22
推荐指数
4
解决办法
3817
查看次数

以编程方式在nVidia Optimus中选择集成图形

关于如何在Windows平台上的运行时选择nVidia离散适配器有很多问题和答案.最简单的方法是导出一个NvOptimusEnablement变量,如下所示:

extern "C" _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
Run Code Online (Sandbox Code Playgroud)

我有相反的要求.我需要在运行时为我的应用程序设置集成显卡,无论NVIDIA控制面板中的首选图形处理器是什么.这个变量不适合这个.我该怎么做?

c++ windows nvidia

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

命令行分析器库 - 布尔参数

我尝试将一个布尔参数传递给控制台应用程序,并使用命令行解析器库处理该值.

[Option('c', "closeWindow", Required = true, HelpText = "Close the window.")]
public bool CloseWindow { get; set; }
Run Code Online (Sandbox Code Playgroud)

我试图将参数传递为

-c false
-c False
-c "false"
-...
Run Code Online (Sandbox Code Playgroud)

没有差异,每次尝试我得到"true"的价值.

任何人都可以告诉我如何传递参数来获取布尔false值?

为了避免可能的问题,有一个正确传递的字符串选项:

[Option('s', "system", Required = true, HelpText = "Any help text")]
public string System { get; set; }
Run Code Online (Sandbox Code Playgroud)

c# nuget-package command-line-parser

15
推荐指数
2
解决办法
5968
查看次数

什么时候在C++中创建VTable?

我想知道vtable何时创建?它是在main()之前的启动代码还是在其他时间点?

c++

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

摆脱ATLTRACE输出中显示的atlTraceGeneral类别

升级到VS2013后,我开始在"():atlTraceGeneral - 我的输出"格式中接收所有ATLTRACE2消息.

例如

ATLTRACE(_T("This is my data: %d\n"), 124);
Run Code Online (Sandbox Code Playgroud)

......显示为

dllmain.cpp(1121) : atlTraceGeneral - This is my data: 124
Run Code Online (Sandbox Code Playgroud)

我不需要任何其他信息.这里有一些方法可以回到以前的格式,这样输出就可以了

This is my data: 124
Run Code Online (Sandbox Code Playgroud)

c++ atl visual-studio-2013

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

慢速Visual Studio,与SQMClient相关?

Visual Studio开始工作比平常慢,在检查加载项并进行修复后,它的速度一样慢.我使用进程监视器检查发生了什么,并发现很多东西正在与SQMClient相关,据我所知,这是微软客户反馈计划的一部分.我没有参加该计划(我已经仔细检查了).仍然 - 进程监视器告诉我VS做了很多与SQMClient相关的东西:

  • RegQueryKey HKLM SUCCESS查询:HandleTags,HandleTags:0x0
  • RegOpenKey HKLM\Software\Microsoft\SQMClient SUCCESS所需访问:读取
  • RegSetInfoKey HKLM\SOFTWARE\Microsoft\SQMClient SUCCESS KeySetInformationClass:KeySetHandleTagsInformation,Length:0
  • RegQueryValue HKLM\SOFTWARE\Microsoft\SQMClient\UploadDisableFlag NAME NOT FOUND长度:144
  • RegCloseKey HKLM\SOFTWARE\Microsoft\SQMClient SUCCESS

它一遍又一遍地重复着这一点.你们中的任何人都知道VS为什么会这样做,如果这是缓慢行为背后的原因?

visual-studio process-monitor

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