c++ - 包含引用的对象 vector

标签 c++ vector reference

我有以下结构:

struct Transaction {
    Transaction(Book& bb, Patron& pp, Date dd)
        : b(bb), p(pp), d(dd) { }
        Book& b;
        Patron& p
        Date d;
};

当我尝试放置 Transaction 类型的对象时进入vector<Transaction>v_tpush_back ,它不会起作用。一屏的错误就导致失败。

是因为我有引用作为我的对象的成员吗?

最佳答案

您需要该类型的赋值和复制运算符,因为它包含引用。 STL 容器对象必须是可复制和可分配的(不幸的是,这对于您的引用来说是不可能的)。

检查此线程:

http://cboard.cprogramming.com/cplusplus-programming/106779-copy-constructor-class-const-reference-member.html

它讨论了问题和一些替代解决方案,尽管它基本上说容器类型中没有引用成员。

关于c++ - 包含引用的对象 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7714024/

相关文章:

c# - 将对象的克隆添加到 c# 中的列表(防止从外部修改)

c++ - $(OutDir) 未设置为项目输出目录

c++ - protobuf "oneof"子 protobuf 对象指针杀死程序

C++ - 指针问题

c++ - 使用索引删除 std::vector 中的元素

c++ - Operator [] 重载写/读之间的区别?

c++ - 对指针和常量兼容性的引用

c++ - 是否可以使用 C++ 元编程收集一个特定模板的所有显式实例化类型?

c++ - C++ 中类的声明将接口(interface)与该接口(interface)的实现结合在一起?

java - 如何同时修改 Vector