c++相关内容
无法理解此操作失败的原因? int *p = new int(10); std::unique_ptr ptr(p); // Below line gives compilation error. std::cout
..
我有ASSERT(x)宏,如果它断言(在发布配置中),我想调用return。 要做到这一点,我需要知道使用ASSERT的函数的返回类型。如何获取(我处理C++03,LLVM GCC 4.2编译器)? 我的Assert宏: #define ASSERT(x) if(!(x)) { LOG ("ASSERT in %s: %d", __FILE__, __LINE
..
我正在尝试捕获程序中失败的断言。我正在使用一个直接调用Assert()的库,而不是一个定制函数或宏,目前我正试图在这个库中跟踪几个与移植相关的错误。所有涉及的内容都已在g++中使用调试符号进行了编译。 我所找到的最佳解决方案是在Assert的file:行中使用Assert表达式的条件断开。这允许在断言失败之前停止,但这是一个可怕的解决方案。它需要为每个可能失败的断言进行特殊设置,在我的IDE
..
我正在Fedora 22上编译NVIDIA Caffe工具,查找lpthread库时遇到问题: Determining if the pthread_create exist failed with the following output: Change Dir: /home/user1/Sources/caffe/build/CMakeFiles/CMakeTmp Run Build
..
我在一个内存为12 GB的Windows操作系统上运行一个内存密集型作业。根据我的计算,4 GB的内存应该足以运行该程序。我正在运行我用动态内存分配编写的程序(我有两个版本的程序,分别是malloc/free和new/delete))。 当我打开任务管理器时,我看到该程序似乎只使用了大约2 GB的RAM,即使我有更多的可用空间,并且页面文件大小当前设置为30 GB。有什么方法可以让CodeB
..
我在访问多重继承下的父级成员(同名)时遇到问题。我有4类(经典钻石问题)定义如下: class ClapTrap { public: ClapTrap(void) { _hitpoints = 0; } ~ClapTrap() { } protected: int _hitpoints;
..
考虑如下的继承层次结构: A / B1 B2 / C | D 用C++实现如下: class A { public: A() {}; virtual ~A() = 0; double a; }; A::~A() {}; class B1 : virtual public A { public: B1() {} virtual ~B1() {}
..
在本例中,类Foo和Bar是从库中提供的。我的类Baz从两者继承。 struct Foo { void do_stuff (int, int); }; struct Bar { virtual void do_stuff (float) = 0; }; struct Baz : public Foo, public Bar { void func () {
..
我想知道是否可以在编译时计算基类偏移量。当然,在运行时很容易做到这一点,因为可以利用static_cast的功能,而偏移量只是指向派生类的指针的基指针之间的差异。 我第一次尝试在编译时获取它,结果如下所示: struct InterfaceRoot {}; struct IInterface1 : InterfaceRoot { virtual void MethodI1()
..
假设我想创建一个vector并在其上调用iota: std::vector v(1000); std::iota(begin(v),end(v),0); 向量实际上是在构造函数中0初始化的。问题与以下情况相同: std::vector v; v.resize(1000); 我可以使用reserve,但无法调用iota。而且我也看不到不零初始化的好办法(也许是
..
当您将push_back()项转换为std::vector并通过back()引用保留指向向量中对象的指针时--您是否保证(假设不发生删除)向量中对象的地址将保持不变? 我的向量似乎更改了我使用的对象的指针,因此如果我将10个项目放入其中,并通过记住每个push_back后的back()引用来保留指向这10个项目的指针。 如果您的向量要存储对象,而不是指向对象的指针,则这些对象的地址是否
..
我有一个以竖线分隔的字符串,我想将其放入名为result的向量中。但是,它不会在getline上编译。如果我删除getline中的管道分隔符字符,则它将编译: #include using namespace std; wstringstream ss(L"1,2,3|4,5,6|7,8,9|"); vector result; wstring subs
..
我需要检查数字是否为序列的句号。 示例:{1,3,1,4,2,1,3,1,4,2,1,3} 期间为5和10。基准期间为5,因为它是最小的期间。 #include #include int p=0; int period(std::vectorv , int x) { int p = 0; for (int i
..
假设我有一个以指针指针为参数的C库API函数。然而,由于我是用C++编程的,所以我想利用STD向量来处理动态内存。如何有效地将向量的矢量转换为指针的指针?我现在正在使用这个。 #include /* C like api */ void foo(short **psPtr, const int x, const int y); int main() {
..
我有一个问题浮现在我的脑海里... 我有一个std::向量来迭代: 迭代的最佳方式(更快)是什么? 以下是使用迭代器的代码: // using the iterator for( std::vector ::iterator it = myObject.begin( ); it != myObject.end( ); it++ ) { (*it)->some
..
使用原始指针,我可以创建指针和Push_Back地址的矢量,如下所示: Entity objEntity; std::vector Entities; Entities.push_back(&objEntity); 如果我改用共享指针向量: std::vector> Entities; .如何推送地址? 据
..
在我的程序中,我经常需要拥有一个像数组一样的容器--即用于连续存储在内存中的数据,但向量太灵活了,没有它应有的实用或效率。 需求与std::vector在一个或多个方面不同,例如: 只能在结尾处插入元素,不能移动其他元素 构建/编译后不能更改容量 构造/编译后不能更改大小 存储是类固有的,不涉及分配器 对于单个类型没有奇怪的特殊大小写,如std::vector 引
..
在类中,我试图通过传递同一类的方法来对向量进行排序。但它在编译时会给出错误。有谁能说出问题出在哪里吗?谢谢! 它会显示以下错误: bool (Sorter::)(D&, D&)' does not matchbool(Sorter::*)(D&;,D&;)‘ 类型的参数 我还尝试使用sortBynumber(D const& d1, D const& d2) #incl
..
我已下载tbb并将其放置在我的存储库目录中: > tree deps/tbb/ -d deps/tbb/ ├── bin ├── cmake │ └── templates ├── include │ ├── serial │ │ └── tbb │ └── tbb │ ├── compat │ ├── internal │ └──
..
Clang和Visual Studio编译器(但不是GCC)允许编写如下代码: struct A { operator auto() { return 0; } }; int main() { A a; a.operator auto(); } 什么是operator auto?它是特定编译器的扩展还是标准语言功能?如果是,它是以什么语言标准(例如C++17)出现的?
..