vector相关内容

stl容器如何被删除?

stl中的vector之类的容器对象如何被销毁,即使它们是在堆中创建的? 编辑 如果容器持有指针,那么如何销毁这些指针对象 解决方案 指针的 STL 容器不会清理指向的数据.它只会清理保存指针的空间.如果你想让向量清理指针数据,你需要使用某种智能指针实现: {std::vectorv1;v1.push_back(new SomeClass());std ..
发布时间:2022-01-24 20:42:51 C/C++开发

将循环数据保存在向量中

当我运行我的脚本时,所有的值都会显示出来,但我想要向量中的所有值,我该怎么办? x=[1 2 3 4 5];y=[1 2 3 4 5];xx=[1.2 1.6 1.8 2.4 2.8 3.4 4.9 2.6];yy=[1.2 1.6 1.8 2.5 2.8 3.3 4.9 2.5];情节(x,y,'.g',xx,yy,'*b')对于 j=1:长度(xx)如果 xx(j) 解决方案 这是一个比 ..
发布时间:2022-01-24 18:51:33 其他开发

指向向量和多态性的唯一指针

我有问题,我想创建指向 Base 对象向量的唯一指针.我想保留 Base 的这个向量子类(SubClass),但是初始化有问题,因为 Base 类是虚拟的. std::unique_ptr>baseVector = std::make_unique>();子类 newObject();baseVector->push_back(newObject); 解决方案 短版:你不想要一个指向 Bas ..
发布时间:2022-01-24 16:40:08 C/C++开发

C++ 多态性和向量,将向量的派生类指向向量的基类

说:苹果派生自一个基础水果类,然后有一个类 ApplePicker 派生自一个基础 FruitPicker 类. ApplePicker 类具有 vectorappleList,水果选择器类有一个指向 vector 的指针,即 vector*fruitList. 我需要能够将向量设置为这个指针,以便抽象方法可以在水果采摘器类中运行(因为它们只关心水果成员).但是当我尝试这样做 ..
发布时间:2022-01-24 16:27:10 C/C++开发

子类STL向量到基类向量的转换

我想知道是否可以将派生类值的向量转换为基类值的向量.具体来说,我希望能够将基类对象的向量传递给其形式参数采用基类向量的函数.似乎无法直接使用,因为以下代码示例会产生错误(使用 g++): #include A类{};B类:公共A {};无效函数(std::vectorobjs){}int main(int argc, char **argv) {标准::向量objs_b;o ..
发布时间:2022-01-24 16:16:14 C/C++开发

可以有 3 种不同数据类型的向量 C++

我正在尝试用 C++ 创建一个可以存储 3 种不同数据类型的向量.我不想使用 boost 库.比如: 向量向量名称; 我需要制作模板吗?如果是,我该怎么做? 解决方案 编辑:从 C++17 开始,标准库现在包含类模板 std::variant,这与 boost 中预先存在的解决方案非常相似.variant 是联合的类型安全替代方案,它允许使用“或"连接多个类型.关系,例如,std::v ..
发布时间:2022-01-24 15:59:15 C/C++开发

c++: 可以向量<Base>包含 Derived 类型的对象?

标题几乎说明了一切.基本上,这样做是否合法: 类基{//东西}类派生:公共基础{//更多东西}载体富;派生栏;foo.push_back(bar); 根据我看到的其他帖子,以下是可以的,但我不想在这种情况下使用指针,因为它更难使其线程安全. 向量富;派生* bar = 新派生;foo.push_back(bar); 解决方案 不,Derived 对象将是 sliced:所有其他成 ..
发布时间:2022-01-24 15:58:47 C/C++开发

用于遍历结构成员(如数组)的 C 方法?

假设我有一个矢量类: typedef struct vec3_s{浮动 x, y, z;}vec3; 但是,我希望能够在不将其转换为浮点数组的情况下对其进行迭代.虽然在这种情况下可以接受强制转换,但我很想知道在纯 C 中是否可以使用类似 C++ 的功能.例如,在 C++ 中,因为 std::vectorstd::vectorstd::vectorstd::vectorT > 具有重载的下标 [ ..
发布时间:2022-01-24 11:36:26 其他开发

C++标准:向量

我必须继续一个程序.我之前的程序员使用的结构很多: std:vectorT* 常数> 他在 Visual Studio C++ 2010 中编写了 ist 并且能够编译它.我正在使用 g++,它会引发一些编译错误. g++ -g -Wall -c -std=c++11 -pedantic -I/usr/include/SuperLU/src/Cell.cpp -o obj/Cell.o在 ..
发布时间:2022-01-23 23:49:26 C/C++开发

C++11 是否允许向量<const T>?

容器要求已从 C++03 更改为 C++11.虽然 C++03 有一揽子要求(例如,向量的复制可构造性和可分配性),但 C++11 对每个容器操作定义了细粒度的要求(第 23.2 节). 因此,您可以例如将可复制构造但不可赋值的类型 - 例如具有 const 成员的结构 - 存储在向量中,只要您只执行某些不需要赋值的操作(构造和 push_back 就是这样操作;insert 不是). ..
发布时间:2022-01-23 23:01:04 C/C++开发

向量的编译问题<auto_ptr<>>

考虑以下代码: #include #include #include 使用命名空间标准;结构 A{诠释一个;A(int a_):a(a_) {}};主函数(){向量>作为;for (int i = 0; i >::iterator it = as.begin(); it != as.end(); ++it)cout 在尝试编译它时, ..
发布时间:2022-01-23 20:54:37 C/C++开发

我收到此错误:“检测到 glibc"

我刚刚写了一段 CPP 代码,并在 ubuntu 中使用 G++ 编译了它.当我运行我的代码时,一切都很好,代码运行良好并提供输出但不退出并出现此错误: *** 检测到 glibc *** ./a.out: free(): 下一个大小无效(快速):0x09f931f0 ***======= 回溯:=========/lib/libc.so.6(+0x6c501)[0x3de501]/lib/li ..
发布时间:2022-01-23 20:51:30 C/C++开发