小编BoB*_*ish的帖子

用std :: cout正确地用0填充负整数

我发现这个问题已经问到了,但每个人给出的答案都是

std::cout << std::setw(5) << std::setfill('0') << value << std::endl;
Run Code Online (Sandbox Code Playgroud)

这对于正数很好,但是对于-5,它会打印:

000-5
Run Code Online (Sandbox Code Playgroud)

有没有办法让它打印-0005或强制cout始终打印至少5位数(这将导致-00005),因为我们可以用printf做?

c++ iostream cout iomanip

12
推荐指数
1
解决办法
1383
查看次数

具有C++函数的结构的大小

我知道如何sizeof计算仅包含数据成员的结构的大小.但是,例如,如果我在C++中具有以下结构

struct MyAdd()
{
    int AddInt()
    {
        int a=5;
        int b=5;
        return a+b;
    }
    int c;
    int d;
};
Run Code Online (Sandbox Code Playgroud)

所以在使用sizeof函数时它还会返回在函数内声明的变量的大小,AddInt还是只考虑成员变量(cd)?

c++ sizeof

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

c ++在多个进程之间共享单个类对象

我在c ++中有一个相对复杂的类.它在一个过程中使用时效果很好.但是,现在我希望多个进程能够共享此类的一个对象实例.一个进程(Master)将访问对象的读写函数,而另外两个进程(Slave)将仅使用read函数.我想尽可能少地修改类.到目前为止,我已经考虑过单身人士和共享记忆,但似乎既不理想也不直截了当.这是一个只会由我在Linux上使用的研究应用程序.什么是最简单的解决方案?

非常感谢!

编辑:要绝对清楚,提问者有兴趣跨多个进程共享一个对象,而不是线程.

c++ share object

9
推荐指数
1
解决办法
6420
查看次数

获得没有宏的编译时日期和时间

使用c ++

我在自动计划中编译我的代码,需要使用代码本身编译代码的时间.目前,我只是使用__DATE__,__TIME__宏来获得编译时的日期和时间.然而,这将导致二进制文件即使没有更改已对源所做的更改(宏将在编译时膨胀),这是不好的(我不想安装认为改变二元如果没有任何变化来源).

是否有可能在不使用会导致源更改的任何方法的情况下获得编译时间?

谢谢

c++ compiler-construction macros time date

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

鼠标挂钩 - 限制和性能

我有一些关于WH_MOUSE的问题.根据我的阅读,通过将钩子放入DLL中,它会注入进程.这是否意味着捕获鼠标也可以在我的桌面,菜单启动等工作?那应用程序的标题栏呢?我在互联网上看到过一些有这些问题的帖子,但不知道他们是否因某些事情而失败或有某种限制(或其他方法).

我还有一个关于WH_MOUSE和WH_MOUSE_LL之间性能的问题.我发现某个地方WM_MOUSE比WH_MOUSE_LL快,但它真的很明显吗?如果是这样,在什么情况下它可以减慢系统的速度,我们可以注意到这一点?如果我只想记录鼠标和键盘的点击,WH_MOUSE_LL会有效吗?

谢谢!

c++ performance hook winapi

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

在C#中实现IUnknown

我一直在寻找一个如何在C#中实现IUnknown的例子,但是没有找到任何合适的参考或解决方案.

它应该像......一样简单吗?

public interface IUnknown
{
    UInt32 AddRef();
    UInt32 QueryInterface([In] IntPtr riid, [Out] IntPtr ppvObject);
    UInt32 Release();
}
Run Code Online (Sandbox Code Playgroud)

......或者还有更多吗?

.net c# interface iunknown

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

使用remove_if作为地图容器

我试图将remove_if模板用于地图容器,但我收到模板参数的编译器错误。我不明白为什么。

int main()
{
  map<const int, int> intmap;

  intmap[1] = 1;
  intmap[2] = 2;
  intmap[3] = 3;
  intmap[4] = 4;

  auto isOdd = [&](pair<const int, int> it)->bool 
     { return static_cast<bool>(it.second % 2); };

  isOdd(*(intmap.begin()));

 remove_if(intmap.begin(), intmap.end(), isOdd); 
}
Run Code Online (Sandbox Code Playgroud)

此remove_if引发编译器错误。有什么建议可以解决吗?

错误消息是

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\utility(260) : error C2166: l-value specifies const object
        C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\utility(259) : while compiling class template member function 
        'std::pair<_Ty1,_Ty2> &std::pair<_Ty1,_Ty2>::operator =(std::pair<_Ty1,_Ty2> &&)'
        with
        [
            _Ty1=const int,
            _Ty2=int
        ]
        maperaseif.cpp(29) : see reference …
Run Code Online (Sandbox Code Playgroud)

c++ stl remove-if

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

桶关键值图?

我需要一个结构,我可以按键升序排序键值.如果我向一个Key请求一个Value,我想得到Map中最接近的更大(但不相等)Key的值.

因此,例如,我确实推动100,500和1000.如果我请求750,我会得到1000值.如果我要求450,我会获得500 Value.如果我请求500,我得到1000值.这些键是动态的,这里不可能切换.

我的方法是将带有键和值的类推送到向量,但这将持续为O(n).

是否有更好的方法/更快的方法来实现它而不是通过Key向量迭代并进行比较?

c++ containers

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

反转输入,输出字符串意外为空

#include <iostream>
#include <string>
using namespace std;
int main()
{
  string s1;
  cin>>s1;

  int n=s1.size();
  string s2;
  for(int a=0;a<n;a++)
  {
    s2[a]=s1[n-1-a];        
  }
  cout<<s2;
}
Run Code Online (Sandbox Code Playgroud)

但是我没有得到任何输出,但我可以打印反转字符串的元素.任何人都可以帮忙.

c++ string

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

对于循环(C ++)

分配:

该程序应要求用户输入一个正数并显示从1到输入值的所有数字。如果数字不是正数,则会显示一条错误消息,要求用户重新输入数字。

我的具体问题:

对于我的程序,如果用户输入了错误的数字,然后重新输入一个正数,则它不会显示从1到输入值的所有数字。该程序刚刚结束。

#include <iostream>
using namespace std;

int main()
{
int userChoice;
int i = 1;

cout << "Enter a positive integer" << endl;
cin >> userChoice;

if (userChoice > 0)
{
    for (i = 1; i <= userChoice; i++)
    {
        cout << "Loop 1:" << endl;
        cout << i << endl;
    }
}
else if (userChoice < 0)
    cout << "Please re - enter" << endl;
cin >> userChoice;

system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

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