Questions tagged «c++»

C ++是一种通用编程语言。它最初被设计为C的扩展,并且具有类似的语法,但是现在它是一种完全不同的语言。使用此标记可解决有关将要使用C ++编译器编译的代码的问题。对于与特定标准修订版[C ++ 11],[C ++ 14],[C ++ 17]或[C ++ 20]等相关的问题,请使用特定于版本的标记。

12
从向量中删除项目,而在C ++ 11范围“ for”循环中?
我有一个IInventory *的向量,并且正在使用C ++ 11范围遍历该列表,以便对每个对象进行处理。 在处理完一个东西之后,我可能想将其从列表中删除并删除该对象。我知道我可以随时调用delete指针进行清理,但是在范围for循环中将其从向量中删除的正确方法是什么?如果我从列表中删除它,我的循环是否将无效? std::vector<IInventory*> inv; inv.push_back(new Foo()); inv.push_back(new Bar()); for (IInventory* index : inv) { // Do some stuff // OK, I decided I need to remove this object from 'inv'... }
97 c++  vector  for-loop  c++11 

2
Qt是否支持虚拟纯插槽?
我的GUI项目中Qt有很多“配置页”类,它们都直接从继承QWidget。 最近,我意识到所有这些类都共享2个公共插槽(loadSettings()和saveSettings())。 对此,我有两个问题: BaseConfigurationPage用这两个插槽作为虚拟纯方法编写中间基础抽象类(让其命名)是否有意义?(每个可能的配置页面都将始终具有这两种方法,因此我会说“是”) 在进行代码的重大更改之前(如果需要):Qt是否支持虚拟纯插槽?我有什么需要注意的吗? 这是描述所有内容的代码示例: class BaseConfigurationPage : public QWidget { // Some constructor and other methods, irrelevant here. public slots: virtual void loadSettings() = 0; virtual void saveSettings() = 0; }; class GeneralConfigurationPage : public BaseConfigurationPage { // Some constructor and other methods, irrelevant here. public slots: void …

3
使用发射与调用信号,就好像它是Qt中的常规函数​​一样
假设我有这个信号: signals: void progressNotification(int progress); 我直到最近才了解到Qt中的generate关键字。到目前为止,我以前只是通过像常规函数一样调用信号来执行信号。所以代替: emit progressNotification(1000 * seconds); 我会写: progressNotification(1000 * seconds); 像这样调用它们似乎可行,并且所有连接的插槽都将执行,所以使用send关键字是否会导致不同的行为,或者仅仅是语法糖?
97 c++  qt 

6
如何随机播放std :: vector?
我正在寻找一种通用的,可重用的方法来std::vector在C ++中进行洗牌。这是我目前的操作方式,但是我认为它不是很有效,因为它需要一个中间数组,并且需要知道项目类型(在此示例中为DeckCard): srand(time(NULL)); cards_.clear(); while (temp.size() > 0) { int idx = rand() % temp.size(); DeckCard* card = temp[idx]; cards_.push_back(card); temp.erase(temp.begin() + idx); }
97 c++  shuffle  stdvector 

4
如何判断头文件的来源?
我如何知道g ++在哪里可以找到包含文件?基本上如果我 #include <foo.h> g ++将使用任何包含选项添加或更改路径来扫描搜索路径。但是,最终,有什么方法可以告诉我g ++选择编译的foo.h的绝对路径吗?如果无数的搜索路径中有多个foo.h,则尤其有用。 缺少实现该目标的方法...是否有办法让g ++告诉我,包括默认值和所有include选项后其最终搜索路径是什么?
97 c++  c  gcc  include  g++ 

4
std :: system_clock和std :: steady_clock之间的区别?
std::system_clock和之间有什么区别std::steady_clock?(一个示例示例说明不同的结果/行为将是很好的)。 如果我的目标是精确测量函数的执行时间(如基准),那么std::system_clock,std::steady_clock和之间的最佳选择是std::high_resolution_clock什么?
97 c++  c++11  timer  chrono 

11
是否有更好的方法在标头中以C ++表示嵌套名称空间
我从C ++切换到Java和C#,并认为命名空间/程序包的使用在那里更好(结构合​​理)。然后,我回到C ++并尝试以相同的方式使用名称空间,但所需的语法在头文件中太可怕了。 namespace MyCompany { namespace MyModule { namespace MyModulePart //e.g. Input { namespace MySubModulePart { namespace ... { public class MyClass 以下内容对我来说也很奇怪(以避免产生深度缩进): namespace MyCompany { namespace MyModule { namespace MyModulePart //e.g. Input { namespace MySubModulePart { namespace ... { public class MyClass { 有没有一种表达上述内容的较短方法?我缺少类似的东西 namespace MyCompany::MyModule::MyModulePart::... { public …
97 c++  syntax  namespaces 


2
Qt C ++聚合'std :: stringstream ss'类型不完整,无法定义
我的程序中有将整数转换为字符串的函数: QString Stats_Manager::convertInt(int num) { stringstream ss; ss << num; return ss.str(); } 但是,无论何时我运行此命令,我都会收到错误消息: aggregate 'std::stringstream ss' has incomplete type and cannot be defined 我不太确定那是什么意思。但是,如果您知道如何解决它或需要更多代码,请发表评论。谢谢。
97 c++  string  qt  stringstream 

2
如何使用C ++ 17获得以字节为单位的文件大小
我应该知道,特定操作系统是否存在陷阱? 有很多重复(1,2,3,4,5这个问题),但他们在几十年前进行了解答。在许多这些问题中,投票率很高的答案今天是错误的。 .sx上其他(旧质量检查)的方法 stat.h(wrapper sprintstatf),使用syscall tellg(),根据定义返回一个位置,但不一定返回bytes。返回类型不是int。

8
initializer_list并移动语义
我可以将元素移出std::initializer_list<T>吗? #include <initializer_list> #include <utility> template<typename T> void foo(std::initializer_list<T> list) { for (auto it = list.begin(); it != list.end(); ++it) { bar(std::move(*it)); // kosher? } } 由于std::intializer_list<T>需要特别注意编译器并且没有像C ++标准库的普通容器那样的值语义,因此,我宁愿安全而不愿后悔。

10
Qt事件和信号/插槽
在Qt世界中,事件和信号/时隙有什么区别? 一个会替代另一个吗?事件是信号/时隙的抽象吗?
97 c++  qt 

5
如何使用Clang编译C ++?
我已经在Ubuntu中使用apt-get 安装了Clang,并且可以使用它成功编译C文件。但是,我不知道如何通过它编译C ++。我需要做什么来编译C ++?
97 c++  clang 


8
C ++中的iostream标头的cout,cerr,clog有什么区别?什么时候使用哪个?
我尝试研究和之间的区别cout,cerr并clog在互联网上找不到完美的答案。我仍然不清楚何时使用哪个。谁能通过简单的程序向我解释,并说明何时使用哪种程序的理想情况? 我访问了该站点,该站点在cerr和上显示了一个小程序clog,但是在那获得的输出也可以使用来获得cout。因此,我对每个人的确切用法感到困惑。
97 c++  iostream  cout  clog 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.