代码之家  ›  专栏  ›  技术社区  ›  kovac

通过常量引用传递向量并向向量中添加元素

  •  0
  • kovac  · 技术社区  · 7 年前

    我试图理解以下成员函数:

    void Date::setDays(const std::vector<Date> &days){
      Date d(1, 1, 1);
      m_days = days;
      m_days.push_back(d); // valid.
      days.push_back(d); // invalid.
    }
    

    Date ,我路过 days 作为常量引用。我能理解为什么添加元素是非法的 const m_days ? 它不是指同一个向量吗 ? 当我将元素添加到 ,这是否意味着我要在 我也是?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Jesper Juhl    7 年前

    你分配 m_days 复制 属于 days 相同的向量,如果 百万天 不是 const (显然不是这样,因为您刚刚分配给它)然后向其中添加元素就可以了。你什么都不做 百万天 影响

        2
  •  2
  •   Yashas πάντα ῥεῖ    7 年前

    m_days = days 制造 days 数组,即。 m_days 数组。您对所做的任何更改 百万天 不会影响 . 因此,稳定的

    推荐文章