C++ 创建指向两个相关矢量集合中的对象的指针集合
C++ Create collection of pointers to objects in two related vector collections
我正在使用Visual Studio 2010的Visual C++。我有两个相似但不完全相同的对象集合(向量)。我为这两个类创建了一个抽象基类,其中包含所有公共元素。
在基类中,每个对象都有一个保存序列号的成员,该序列号是唯一的,并且在两个集合的联合中单调递增。我需要用"下一个"和"上一个"按钮向用户显示这些对象,按此内部序列号的顺序排列。
我不能但同一集合中的所有对象(用于排序),因为它们是不同的类,即使相关。我想创建第三个指向基类对象的指针集合,并按排序顺序填充它以供显示。我在创建此集合(我已经尝试过向量、列表和简单数组)并使用指向其他两个集合中的派生类对象的指针填充它时遇到问题。
我愿意接受任何和所有建议。
戴夫
所以你的基类应该看起来像这样:
class Base{
public:
Base() : _sequence(s_sequence++){}
bool operator<(const Base& that) const{return _sequence < that.getSequence();}
int getSequence() const{return _sequence;}
private:
int _sequence;
static int s_sequence;
};
int Base::s_sequence = 0;
然后,您可以将所有内容放在一个std::vector<Base*> foo
中,您可以使用以下命令对其进行排序:
std::sort(foo.begin(), foo.end(), [](Base* first, Base* second){return *first < *second;});
相关文章:
- 互斥指针的集合
- MPI 集合通信中的指针分配
- 保留计时器集合(对象与指针)的最佳方法
- 如何让集合 in C++过滤掉指向相同值的不同指针
- 集合中的智能指针多态性
- 重载指向集合的指针的开始/结束是否是个好主意
- C++基类指针、集合类
- Boost:当缺少类型时,如何通过基指针序列化/反序列化泛型类型集合
- 使用指针在恒定时间内从集合中删除
- 无法将对象上的指针添加到集合
- 如何保留指向插入到集合中然后推送到向量中的对象的指针
- C++ 创建指向两个相关矢量集合中的对象的指针集合
- 将指向派生类实例的指针集合视为父类
- 管理指向派生对象的指针集合的最佳方式
- 指针集合和添加对象
- C++指针集合类,便于通信
- 将指针传递到集合向量C++/cx
- 更好的std::在指针集合上查找,并将取消引用的值与常量引用值进行比较
- 当返回一个集合指针时,客户端如何知道它是否需要销毁它?
- 指针的集合.复制构造函数问题