C++无法在创建静态向量后编辑该向量内部的向量项
C++ Cannot edit items of a vector inside a static vector after creating it
我一直试图解决这个问题,但没有成功,我希望有人能帮助我解决它。
我有一个类Constants,它有一个a类对象的向量:
class Constants
{
public:
static std::vector<A> currentA;
}
类A有这个构造函数和返回_b:的函数getB()
A::A(std::vector<B>& b)
{
_b=b;
}
B类是这样的:
class B
{
private:
int Age;
public:
B(const int& age){Age = age;};
int getAge(){return Age;};
void setAge(const int& age){Age=age;}
}
就是这样。如果我在currentA中添加一个项目,如下所示:
std::vector<B> bList;
playerList.push_back(B(5));
Constants::currentA.push_back(bList);
如果执行CCD_ 2,则返回值5,但如果你这样做:
Constants::currentA.getB().at(0).setAge(10);
然后:
Constants::currentA.getB().at(0).getAge();
它仍然返回5。
有什么想法吗??
非常感谢。
根据getB()
的值返回_b
。
当您setAge()
时,您在本地副本上执行此操作,然后会被遗忘。
解决方案是将getB()定义为重新转换对向量的引用,而不是向量本身。
相关文章:
- 写入向量<向量<bool>>
- 函数向量_指针有不同的原型,我可以构建一个吗
- std::向量与传递值的动态数组
- 将值指定给向量(2D)的向量中的某个位置
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 如何使用向量的template_back函数
- 尝试通过多个向量访问变量时,向量下标超出范围
- 如何通过派生类函数更改基类中的向量
- C++从另一个类访问公共静态向量的正确方法是什么
- 如何将ampl中的集合表示为c++中的向量
- 变量没有改变?通过向量的函数调用
- 迭代时从向量和内存中删除对象
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 计算排序向量的向量中唯一值的计数
- 如何在类函数中编辑向量的私有成员
- 双打分类/编辑问题的2D向量
- 将循环的输出追加到 c++ 中字符串向量的元素 已编辑
- C++无法在创建静态向量后编辑该向量内部的向量项
- VC++调试模式:批量编辑标准::向量<int>值?