Questions tagged «c++»

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

7
未定义对静态类成员的引用
谁能解释为什么以下代码无法编译?至少在g ++ 4.2.4上。 更有趣的是,当我将MEMBER转换为int时为什么会编译? #include <vector> class Foo { public: static const int MEMBER = 1; }; int main(){ vector<int> v; v.push_back( Foo::MEMBER ); // undefined reference to `Foo::MEMBER' v.push_back( (int) Foo::MEMBER ); // OK return 0; }
201 c++  g++ 

11
C ++程序员应该知道哪些常见的未定义行为?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,因此不能以当前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 C ++程序员应该知道哪些常见的未定义行为? 像这样说: a[i] = i++;

5
我需要手动关闭ifstream吗?
close()使用时需要手动打电话std::ifstream吗? 例如,在代码中: std::string readContentsOfFile(std::string fileName) { std::ifstream file(fileName.c_str()); if (file.good()) { std::stringstream buffer; buffer << file.rdbuf(); file.close(); return buffer.str(); } throw std::runtime_exception("file not found"); } 我需要file.close()手动打电话吗?不应该ifstream使用RAII关闭文件吗?
201 c++  ifstream  raii 

13
何时使用std :: size_t?
我只是想知道我应该使用std::size_t循环和东西而不是int?例如: #include <cstdint> int main() { for (std::size_t i = 0; i < 10; ++i) { // std::size_t OK here? Or should I use, say, unsigned int instead? } } 通常,关于何时使用的最佳实践是什么std::size_t?

5
C ++ STL向量:从索引获取迭代器?
因此,我编写了一堆代码通过index []访问stl向量中的元素,但是现在我只需要复制向量的一部分即可。看起来vector.insert(pos, first, last)是我想要的功能...除了我只有第一个和最后一个作为整数。有什么好方法可以让我迭代这些值?
200 c++  stl  vector  iterator 

12
将最胖的人从超载的飞机上摔下来。
假设您有一架飞机,而且燃油低。除非飞机掉落3000磅的乘客重量,否则它将无法到达下一个机场。为了最大程度地挽救生命,我们希望首先将最重的人员从飞机上赶下。 哦,是的,飞机上有数百万人,我们希望找到一种最佳算法来查找最重的乘客,而不必对整个列表进行排序。 这是我尝试用C ++编写代码的代理问题。我想按重量对旅客舱单进行“ partial_sort”,但我不知道我需要多少元素。我可以实现自己的“ partial_sort”算法(“ partial_sort_accumulate_until”),但是我想知道是否有使用标准STL进行此操作的简便方法。
200 c++  algorithm  sorting  stl 

6
cplusplus.com怎么了?
对于这个问题,这也许不是一个非常合适的论坛,但让我试一下,否则有可能被移走。 C ++标准库有多个参考,包括宝贵的ISO标准,MSDN,IBM,cppreference和cplusplus。就个人而言,在编写C ++时,我需要一个具有快速随机访问,较短的加载时间和用法示例的参考,并且我发现cplusplus.com非常有用。但是,在SO上,我经常听到对该网站的负面评价,因此我想具体一点: cplusplus.com的错误,误解或不良建议是什么?使用它做出编码决策有什么风险? 让我补充一点:我希望能够在SO上用标准的准确报价来回答问题,因此我想发布立即可用的链接,如果不是这样,cplusplus.com将是我的选择站点这个问题。
200 c++ 


21
断言是邪恶的吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 该Go语言的创造者写的: Go不提供断言。它们无疑是很方便的,但是我们的经验是程序员将它们用作拐杖,以避免考虑适当的错误处理和报告。正确的错误处理意味着服务器在发生非严重错误后仍可继续运行,而不会崩溃。正确的错误报告意味着错误是直接的并指向重点,从而使程序员不必解释大型崩溃跟踪。当程序员看到的错误不熟悉代码时,精确的错误尤为重要。 您对此有何看法?
199 c++  c  error-handling  go  assert 

3
为什么我必须通过this指针访问模板基类成员?
如果下面的类不是模板,那么我可以简单地x在derived该类中使用。但是,在下面的代码中,我必须使用this->x。为什么? template <typename T> class base { protected: int x; }; template <typename T> class derived : public base<T> { public: int f() { return this->x; } }; int main() { derived<int> d; d.f(); return 0; }


3
cout不是std的成员
我正在练习使用多个文件和头文件等。因此,我有一个项目,该项目将两个数字加起来。很简单 这是我的文件: main.cpp #include <iostream> #include "add.h" int main() { int x = readNumber(); int y = readNumber(); writeAnswer(x + y); return(0); } io.cpp int readNumber() { int x; std::cout << "Number: "; std::cin >> x; return x; } void writeAnswer(int x) { std::cout << "Answer: "; std::cout << x; …
199 c++  io  std  member  cout 

7
在函数签名中抛出关键字
throw在函数签名中使用C ++ 关键字被视为不良做法的技术原因是什么? bool some_func() throw(myExc) { ... if (problem_occurred) { throw myExc("problem occurred"); } ... }
199 c++  exception 


7
可重入函数到底是什么?
大多数 的 的 时代,再进入的定义转引自维基百科: 如果一个计算机程序或例程可以在之前的调用完成之前安全地再次调用(即可以安全地同时执行),则称为可重入 。要重入,可以使用计算机程序或例程: 必须不包含静态(或全局)非恒定数据。 不得将地址返回静态(或全局)非恒定数据。 必须仅对调用方提供的数据起作用。 绝对不能依赖于对单例资源的锁定。 不得修改自己的代码(除非在自己的唯一线程存储中执行) 不得调用非可重入计算机程序或例程。 如何安全定义? 如果一个程序可以安全地并发执行,是否总是意味着它是可重入的? 在检查代码的可重入功能时,应牢记的六点之间的共同点到底是什么? 也, 所有递归函数都是可重入的吗? 所有线程安全函数都可重入吗? 所有递归和线程安全函数都可以重入吗? 在写这个问题时,会想到一件事:再入和线程安全之类的术语是绝对绝对的,即它们是否具有固定的具体定义?因为,如果不是这样的话,这个问题就没有太大意义。

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.