gpt4 book ai didi

c++ - 通过 const rerefence 传递 vector 并向 vector 添加元素

转载 作者:行者123 更新时间:2023-11-27 22:35:20 26 4
gpt4 key购买 nike

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

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 作为常量传递。我可以理解为什么将元素添加到 days 是非法的,因为它是 const。但是,我的困惑是,我怎么可能向 m_days 添加一个元素?它不是指与 days 相同的 vector 吗?当我向 m_days 添加一个元素时,是否意味着我也在向 days 添加一个元素?

最佳答案

您为 m_days 分配了 days拷贝。它不是同一个 vector ,如果m_days不是const(显然不是,因为你刚刚分配给它)然后添加元素到很好。您对 m_days 所做的任何事情都不会以任何方式影响 days

关于c++ - 通过 const rerefence 传递 vector 并向 vector 添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55207536/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com