小编Pat*_*RIA的帖子

是否有任何关于为什么重新定义枚举器格式错误的规则?

考虑这个例子

enum class A{
    a = 0,
    a = 1
};
Run Code Online (Sandbox Code Playgroud)

编译器会报告错误,这是“枚举‘一’的重新定义”。但是,[basic.def.odr#1]枚举器没有任何要求

没有翻译单元应包含一个以上定义的任何变量,函数,类型,枚举类型,模板,默认参数为一个参数(用于在给定范围的函数)的,或缺省的模板参数。

我想知道标准中的哪个规范规则限制了它?

c++ language-lawyer

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

How to count the number of distinct of Values in a C++ `Map<Key,Values>`

I have a c++ map declared as follows

std::map<std::string, int> wordMap= {
    { "is", 6 },
    { "the", 5 },
    { "hat", 9 },
    { "at", 6 } 
    };
Run Code Online (Sandbox Code Playgroud)

I would like to know how to find the number of distinct values of int existing in wordMap. In this example, I would expect an output of 3 as i have 3 different distinct values (6,5,9).

c++

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

如何在无头模式下运行 Qt 应用程序(不显示我的 GUI)

我有一个基于 a 的 QT 应用程序QApplication,假设我的应用程序有一个复杂的 GUI(QDialogQMainWindow...)。

我的应用程序可以以两种模式运行:

  • 带图形用户界面
  • 在无头模式下

我想知道如何在无头模式下启动应用程序(也就是说没有 GUI 可见)

从下面的非常基本的代码来看,我必须有什么论据才能允许这样做?

int main(int argc, char*argv[])
{
  QApplication app(argc, argv);
  // which option should I add to argv to run in headless mode
  return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

c++ qt command-line qt5 qapplication

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

向量作为类成员

class A
{
   private:
      std::vector<int>myvec;
   public:
      const std::vector<int> & getVec() const {return myvec;}
};
void main()
{
   A a;
   bool flag = getFlagVal();
   std::vector<int> myVec;
   if(flag)
      myVec = a.getVec(); 
   func1(myVec);
}
Run Code Online (Sandbox Code Playgroud)

在 行中myVec= a.getVec(),有一个 的副本,vector尽管它是通过引用返回的。如果flag不是true,将传递一个空向量。

无论如何要避免这个副本?

c++ c++11

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

C++ getnstr 导致奇怪的分段错误

所以我目前正在做一个ncurses用于输出和输入的项目。在这个程序中,用户应该能够,例如,写下他的名字。我遇到的问题是getnstr,因为它会导致一些非常奇怪且无法解释的分段错误。例如,这里的代码可以正常工作:

#include <ncurses.h>
#include <string>

int main()
{
    char *word;
    initscr();
    WINDOW *window = newwin(100, 100, 0, 0);
    nodelay(window, false);
    refresh();

    mvwgetnstr(window, 0, 0, word, 10);
    mvwprintw(window, 0, 0, "Word written is %s", word);

    wrefresh(window);
    getch();
    endwin();
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我只在主函数中添加一个字符串变量,例如以这种形式:

#include <ncurses.h>
#include <string>

int main()
{
    std::string crashMe;

    char *word;
    initscr();
    WINDOW *window = newwin(100, 100, 0, 0);
    nodelay(window, false);
    refresh();

    mvwgetnstr(window, 0, 0, word, 10);
    mvwprintw(window, 0, 0, "Word written is %s", word);

    wrefresh(window);
    getch(); …
Run Code Online (Sandbox Code Playgroud)

c c++ ncurses segmentation-fault

0
推荐指数
1
解决办法
55
查看次数

如何在 C++ 中将整数值读入常量?

如何正确地将此代码从 Java 重写为 C++:

final int number = scanner.nextInt();
Run Code Online (Sandbox Code Playgroud)

我正在尝试,const number << cin;但它不起作用。

数量应该是恒定的。

在 C++ 中可能吗?

c++ java

0
推荐指数
1
解决办法
99
查看次数