Questions tagged «c++»

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


3
如何在字符串向量中获取某个元素的位置,以将其用作int向量中的索引?
我正在尝试获取的向量中元素的索引strings,以将其用作另一int类型的向量中的索引,这可能吗? 例: vector <string> Names; vector <int> Numbers; ... // condition to check whether the name exists or not if((find(Names.begin(), Names.end(), old_name_)) != Names.end()) { // if yes cout <<"Enter the new name."<< endl; cin >> name; replace(Names.begin(), Names.end(), old_name_, name); } 现在,我想要得到的位置old_name的Names矢量,在访问某些元素使用它Numbers载体。这样我可以说: Numbers[position] = 3 ; // or whatever …
99 c++ 

3
此人如何用Microsoft Paint编码“ Hello World”?
我刚刚在过去几天中看到了这一点,无法弄清楚它是如何工作的。我谈论的视频在这里: 这是这个堆栈溢出问题的最高评价的答案:为什么该程序被三个编译器拒绝? 该位图如何显示“ Hello World”的C ++程序?
99 c++  c  paint 

3
指向基点的指针可以指向派生对象的数组吗?
今天我去了一次面试,并得到了这个有趣的问题。 除了内存泄漏和没有虚拟dtor的事实之外,为什么此代码还会崩溃? #include <iostream> //besides the obvious mem leak, why does this code crash? class Shape { public: virtual void draw() const = 0; }; class Circle : public Shape { public: virtual void draw() const { } int radius; }; class Rectangle : public Shape { public: virtual void …
99 c++  pointers 

2
为什么C ++ 20中引入了std :: ssize()?
C ++ 20引入了以下std::ssize()免费功能: template <class C> constexpr auto ssize(const C& c) -> std::common_type_t<std::ptrdiff_t, std::make_signed_t<decltype(c.size())>>; 似乎可以使用实现static_cast,将size()cl ass C的成员函数的返回值转换为其有符号的对等。 由于size()C 的成员函数始终返回非负值,所以为什么有人要将它们存储在带符号的变量中?万一真的要,那很简单static_cast。 为什么std::ssize()在C ++ 20中引入?
99 c++  stl  unsigned  signed  c++20 

12
C ++预处理器__VA_ARGS__参数数量
我在网上找不到答案的简单问题。在可变参数宏中,如何找到参数个数?如果可以的话,我对Boost预处理器还可以。 如果有什么不同,我试图将可变数量的宏参数转换为增强预处理程序序列,列表或数组,以进行进一步的处理。


5
为什么C ++需要用户提供的默认构造函数来默认构造const对象?
C ++标准(第8.5节)说: 如果程序要求对const限定类型T的对象进行默认初始化,则T必须是具有用户提供的默认构造函数的类类型。 为什么?我想不出在这种情况下为什么需要用户提供的构造函数的任何原因。 struct B{ B():x(42){} int doSomeStuff() const{return x;} int x; }; struct A{ A(){}//other than "because the standard says so", why is this line required? B b;//not required for this example, just to illustrate //how this situation isn't totally useless }; int main(){ const A a; }
99 c++ 



11
如何解决错误LNK2019:无法解析的外部符号-功能?
我收到此错误,但是我不知道如何解决。 我使用的是Visual Studio2013。我将解决方案的名称命名为MyProjectTest, 这是我的测试解决方案的结构: - function.h #ifndef MY_FUNCTION_H #define MY_FUNCTION_H int multiple(int x, int y); #endif -function.cpp #include "function.h" int multiple(int x, int y){ return x*y; } - main.cpp中 #include <iostream> #include <cstdlib> #include "function.h" using namespace std; int main(){ int a, b; cin >> a >> b; cout << …


3
如何转发声明C ++模板类?
给定一个类似下面的模板类: template<typename Type, typename IDType=typename Type::IDType> class Mappings { public: ... Type valueFor(const IDType& id) { // return value } ... }; 有人如何在头文件中转发声明此类?

4
std :: function如何实现?
根据我发现的消息来源,lambda表达式实际上是由编译器实现的,该编译器创建了一个带有重载函数调用运算符并将引用变量作为成员的类。这表明lambda表达式的大小是变化的,并且给定足够多的引用变量,大小可能会任意大。 的大小std::function应为固定,但必须能够包装任何类型的可调用对象,包括任何同类型的lambda。如何实施?如果std::function内部使用指向其目标的指针,那么在std::function复制或移动实例时会发生什么?是否涉及任何堆分配?
99 c++  c++11  lambda 

6
为什么vector <bool>不是STL容器?
斯科特·迈耶斯(Scott Meyers)的书《有效的STL:提高标准模板库使用率的50种特定方法》第18条说,要避免vector &lt;bool&gt;使用它,因为它不是STL容器,并且实际上并不适用bool。 如下代码: vector &lt;bool&gt; v; bool *pb =&amp;v[0]; 不会编译,这违反了STL容器的要求。 错误: cannot convert 'std::vector&lt;bool&gt;::reference* {aka std::_Bit_reference*}' to 'bool*' in initialization vector&lt;T&gt;::operator []返回类型应该是T&amp;,但是为什么会有特殊情况vector&lt;bool&gt;呢? 什么是vector&lt;bool&gt;真正组成的呢? 该项目还说: deque&lt;bool&gt; v; // is a STL container and it really contains bools 可以代替vector&lt;bool&gt;吗? 谁能解释一下?

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.