从类指针的向量创建成员变量的向量
Create vector of member variables from vector of class pointers
我有一个包含指向SomeClass
实例的指针的std::vector
。此类(除其他外(具有类型为SomeOtherClass
的成员变量。我认为应该有一种方法(例如某种强制转换(可以有效地创建一个包含SomeOtherClass
对象的新向量。
目前我使用以下:
std::vector<SomeClass*>objects = {new SomeClass(),...};
std::vector<SomeOtherClass> memberVars;
for(SomeClass* object : objects){
memberVars.pushback(object->member);
}
(不能同时创建两个向量。
编辑:问题:是否有更有效的选择来实现这一目标?
如果你需要另一个向量,你所拥有的是你能做的最好的事情。使用std::transform
和插入迭代器可以使它更像C++,但很难看出该代码如何比您的简单循环更清晰。
不能将一种矢量类型强制转换为另一种矢量类型,即使它们各自的元素类型相关。
你可以尝试通过使用过滤函数迭代现有容器来消除对它的需求,这些函数使你不必在任何地方编写->member
,但这实际上取决于你要做什么(我们不知道(。
相关文章:
- 向量成员在管理类指针C++队列时丢失
- C++:更新类的向量成员变量
- C++ 入门 12.1:我可以在类中使用静态向量成员实现 StrBlob<string> 吗?
- 具有向量成员的基类<int>
- C++ 向量::使用类对象迭代器擦除不擦除向量成员
- 无法将类构造函数中新创建的对象复制到 C++ 中的向量成员
- 修改另一个类的向量成员时出错
- 返回对私有向量成员元素的非常量引用是否是一种不好的做法
- 如何在 C++ 中将结构类型向量数据输入到结构向量成员(嵌套结构向量)中
- std::向量成员变量 EXC_BAD_ACCESS
- 如何使用其定义附近的显式长度/值构造函数初始化向量成员变量
- "Empty"数组\向量成员 C++
- 如何使用初始值设定项列表初始化 2D 向量成员
- 如何在类定义中初始化向量成员变量
- 如何初始化结构的向量成员
- 使用向量<向量>成员实例化对象时的隔离错误<int>
- 为向量成员和更新元素指定默认值
- 保持类的向量成员与类实例连续
- C++:在类构造函数中填充向量后,向量成员被销毁
- 通过引用另一个类方法传递向量成员变量