小编Fel*_*bek的帖子

C++将字符串与"%"char进行比较

我想在C++中实现一个字符串比较,比较字符串到"%"符号.

我可以这样做:

std::equal(str1.begin(), 
           std::find(str1.begin(), str1.end(), L'%'),
           str2.begin());
Run Code Online (Sandbox Code Playgroud)

由于我在一个循环过许多字符串这样做,我不知道是否有没有两个不同的字符串遍历的方法findequal(也许与可终止在任何时候比较的谓词).提升还可以.

c++ boost stl string-comparison

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

c - 整数向下转换

关于C中的整数倒数,例如

一个int值000F'E000向下转换为short或unsigned short将成为E000.
short- > -8192,
unsigned short - > 57344,

那么它只是削减了比特吗?

那些上流社会呢?例如,int -10ffffff81,要施加什么规则long long


@Update

关于upcasting,根据答案,我做了一些测试,发现有2的补码它有以下规则:

    signed:
        positive -> positive: add 0 as prefix bits,
        negative -> negative: add 1 as prefix bits,
    unsigned:
        add 0 as prefix bits,

码:

// integer numbers, downcast & upcast,
#include <stdio.h>

void downcastTest() {
    int i = 127<<13;
    printf("%X, %hX, %hi\n", i, i, i);
}

void upcastTest() {
    int i …
Run Code Online (Sandbox Code Playgroud)

c type-conversion

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

编程语言中不同结构的速度(Java/C#/ C++/Python/...)

我的老板告诉我,他从一本书中学到了快速的VB6算法,并且写东西的最短方式不一定是最快的(例如,内置方法有时比自写方法慢,因为它们进行各种检查或unicode转换,在你的情况下可能没有必要).

现在我想知道,是否有一个关于快速不同结构的信息的网站有各种语言,尤其是.Java/C#/ Python/...(也是C++,但有很多编译器可能有很多不同).

例如,之间存在差异

if (a()) b();
Run Code Online (Sandbox Code Playgroud)

a() && b();
Run Code Online (Sandbox Code Playgroud)

另一个例子:a = a * 4可能编译成相同的代码a <<= 2吗?

我可以自己测试一下,当然,写两个然后运行它们100000次并比较运行时,但我也想学习写东西的新方法,甚至可能是我以前没有考虑过的东西.谢谢你的回答!

c# java algorithm performance

7
推荐指数
3
解决办法
537
查看次数

为什么COM CoInitializeSecurity在我的DLL中失败?

我目前正在从MS Windows SDK 6.1学习VSHADOW.EXE 3.0.我已经创建了一个可以编译成DLL的版本,该DLL只导出一个新编写的函数,该函数需要将命令行作为字符串,对其进行标记,然后调用旧函数wmain.DLL不是COM服务器.

当编译为EXE时,它与旧版本完全一样,但在编译为DLL时不能正常工作,因为此调用失败:

 CoInitializeSecurity(NULL, -1, NULL, NULL, 
                      RPC_C_AUTHN_LEVEL_PKT_PRIVACY, 
                      RPC_C_IMP_LEVEL_IDENTIFY, 
                      NULL, EOAC_NONE, NULL);
Run Code Online (Sandbox Code Playgroud)

其失败HRESULT的错误0x80010119(RPC_E_TOO_LATE,安全必须是任何接口编组或解组之前进行初始化,它不能改变初始化一次.)

我从导入函数的VB6程序中运行导出的函数Declare Function vss Lib vshadow.dll ....

错误是否意味着已经调用了VB6程序CoInitializeSecurity?我该怎么做才能对付这个错误?

另外,我还有另一个问题:为什么确切地说是安全值RPC_C_AUTHN_LEVEL_PKT_PRIVACYRPC_C_IMP_LEVEL_IDENTIFY选择了?其他设置会产生什么影响?

windows com dll

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

根据MSVC++中的unicode设置自动在std :: string和std :: wstring之间切换?

我正在编写DLL并希望能够在MSVC++ 2010中的unicode和multibyte设置之间切换.例如,我使用_T("string")and LPCTSTRWIN32_FIND_DATA不是-W和-A版本等.

现在,我想有性病::字符串之间变化std::string,并std::wstring根据统一设置.那可能吗?否则,这可能会变得非常复杂.

c++ string unicode unicode-string

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

在Windows中从文件名中获取驱动器号

是否有Windows API函数从Windows路径中提取驱动器号,如

U:\path\to\file.txt
\\?\U:\path\to\file.txt
Run Code Online (Sandbox Code Playgroud)

正确整理的同时

relative\path\to\file.txt:alternate-stream    
Run Code Online (Sandbox Code Playgroud)

等等?

c++ filesystems winapi drive-letter

6
推荐指数
2
解决办法
5652
查看次数

#ifdef WIN32 #elif WIN64 #endif

我遇到了一些示例代码,如下所示:

#ifdef WIN32
   ...
#elif WIN64
   ...
#endif
Run Code Online (Sandbox Code Playgroud)

在一个#ifdef块中,它实际上是合法使用#elif的意思#elif defined

conditional-compilation c-preprocessor

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

从最多X个字符构造std :: string,停止在null char

我正在从文件中的结构中读取字符串,其中每个字符串具有固定长度,带有'\0'填充.如果存储的字符串需要整个长度,则它们不会以零终止.

我正在构建std::string像这样的人:

// char MyString[1000];
std::string stdmystring(MyString, ARRAYSIZE(MyString));
Run Code Online (Sandbox Code Playgroud)

但是,这也会复制填充.我现在可以修剪弦乐,但是有一种优雅而快速的方法来防止复制吗?

速度比空间更重要,因为它在一个循环中运行.

c++ stdstring c++03

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

git cherry-pick和git format-patch有什么区别?git是吗?

有时我需要在分支中挑选具有一定修复能力的标签,然后通过

git cherry-pick tags/myfix
Run Code Online (Sandbox Code Playgroud)

这是可行的,但是在进行“ inexact重命名检测”时,挑选樱桃的时间越来越长。

我的预感是,这样可以更快

git format-patch -k -1 --stdout tags/myfix | git am -3 -k
Run Code Online (Sandbox Code Playgroud)

实际上,事实证明,该解决方案可立即应用该修复程序,使我的分支处于与选择樱桃完全相同的状态。

现在我的问题是,摘樱桃到底有什么不同?我以为摘樱桃基本上就是这样实现的,但我一定误会了。

git git-patch git-cherry-pick git-am

6
推荐指数
2
解决办法
844
查看次数

默认写{(+/3&lt;???6)×100÷?}1000

受到一些 Conor Hoekstra YouTube 视频的启发,我尝试在 APL 中做一些小步骤,并将我的小线条转换为无点样式。但对于这个(1000 个骰子 6 卷中 4、5 或 6 卷的百分比)我无法理解如何在重塑之前消除 omega。

\n

{(+/3<?\xe2\x8d\xb5\xe2\x8d\xb46)\xc3\x97100\xc3\xb7\xe2\x8d\xb5}1000

\n

apl pointfree tacit-programming

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