我目前正在处理一项尝试实现 Bag 抽象数据类型的任务(所以我宁愿不发布完整的代码)。
以下是我目前正在尝试实现的方法:
template <typename T>
Bag<T> Bag<T>::operator+ (const Bag<T>& bag) {
int sizeofCurrentMultiset = cardinality_;
int sizeofPassedMultiset = bag.cardinality_;
int totalSize = sizeofCurrentMultiset + sizeofPassedMultiset;
Bag<T> newBag(totalSize);
for (int i = 0; i < sizeofCurrentMultiset; i++) {
newBag.insert(array_[i]);
}
for (int i = 0; i < sizeofPassedMultiset; i++) {
newBag.insert(bag.array_[i]);
}
return newBag;
}
我将元素存储为动态数组。
我的问题是,当新包被退回时,我可以很好地打印基数(打印到 4,原始包每个有两个元素),但是动态数组不包含数字(它打印出一些随机数,例如-1789102)。但是,当我尝试在返回袋子之前打印出元素时,它打印得很好。
毫无疑问,这将是一件微不足道的事情,但我会很感激你的帮助。
谢谢。