• 入门教程
  • 原创Java视频
  • Java毕设项目下载
  • Java一对一辅导 Hot
  • Java面试题
  • Java源码下载
进入会员中心 | 退出
  • 首页
  • 入门教程
  • Java辅导班
  1. 首页
  2. 问题列表
  3. 如何从std::vector转换为std::vector?
提问者:小点点

如何从std::vector<derivedclass*>转换为std::vector<baseClass*>?


下面的代码显示了我要做的:

Member variable:
std::vector<DerivedClass*> myPointers;

Function:
std::vector<BaseClass*> GetMyPointers()
{
  return SOMETHING_CAST<BaseClass*>(myPointers);
}

共1个答案

匿名用户

不存在这样的强制转换运算符,即使A从B继承,std::vector也没有理由继承std::vector。

@songyuanyoa的命题是返回一个新的std::vector。这个想法是,每个派生的*可以单独隐式强制转换为基类*。

因此返回{myPointers.begin(),myPointers.end()};生成一个新向量,其中每个元素都是从原始向量的同一个索引元素创建的。以某种方式等效于(但由于使用了范围构造函数(请参阅https://en.cppreference.com/w/cpp/container/vector/vector)而更聪明):

std::vector<BaseClasse*> baseV;
for (auto p : myPointers)
   baseV.push_back(p); // implicit cast from derived to base
return baseV;

相关问题


  • std::向量在哪里分配内存?
  • 具有隐式转换函数的三路运算符<=>返回结构
  • Visual C关系运算符重载const正确性(使用std::排序)
  • 使用命名键查询和转换文档
  • 在MongoDB中将字符串日期转换为时间戳
  • 将整数列表转换为逗号分隔的字符串
  • 为什么具有顺序一致性的std::atomic存储使用XCHG?
  • 无法从Node获取JavaFx阶段,因为类com. sun.javafx.阶段.EmbeddedWindow无法转换为类javafx.阶段.阶段
  • MongoDb:无法优化管道:原因是:无法从BSON类型的javascript转换为Date
  • data. table NSE:将local()转义到周围环境
  • 将UTF-8转换为ASCII
  • 将文件转换为iso-8859-1(从utf-8可以,但在us-ascii文件上失败)
  • 如何从US-ASCII转换为UTF-8与icon?
  • 转换UTF-8(US-ASCII)到ISO8859-1使用icon命令
  • 如何将终端输出转换为超文本标记语言文件格式
  • 将二进制文件转换为JavaScript字符串,然后转换为Uint8Array
  • 如何在不使用bash中的printf的情况下将字符转换为ASCII
  • svg转换为png时高度、宽度和字体不一致
  • 蜡染将两个svg转换为单个pdf
  • SVG到保留文本的PDF转换器

热门标签

Java JavaScript Python PHP C# Android Html jQuery C++ Css IOS MySQL NodeJS
  • 常见技术问题

    Android:在模块jefied-play-ser... HashMap如何跟踪entrySet等字段 在Hashmap中查找匹配的键/值对 如何迭代Hashmap并与同一Hashmap... HashCode-如果相等的对象碰巧在... Java哈希码和桶大小-关系
  • 常用工具

    编程笔记 编程面试题 Java Jar包下载 在线工具 LayUI镜像站点 毕设文档下载
  • 站点信息

    关于我们 免责声明 网站标签

关注站长公众号:锋哥聊编程

锋哥聊编程

Copyright © 2017-2022 一点教程. All Rights Reserved.
备案号:粤ICP备17065202号-3

微信关注

微信关注