如何使用矢量组合存储桶
How to combine buckets using vectors
我正在为学校做一个项目,我在组合存储桶时遇到了麻烦。
这是我现在的方法。
void combineBuckets() {
for (unsigned int i = 0; i < numBuckets; ++i) {
auto bucket = globalBuckets->getBucket(i);
for (unsigned int j = 0; j < globalBuckets->getNumItemsInABucket(i); ++j) {
list[j] = bucket[i];
}
}
}
globalBuckets
是我正在使用的类的全局对象。 getBucket()
返回存储桶 getNumBuckets()
返回该存储桶中的项目数。
我遇到的主要问题是内部循环。说明说:
- 循环浏览存储桶数量
- 将单个存储桶从
globalBuckets
中取出- 将该单个存储桶中的所有项目复制到列表数组中。
这些是变量:
unique_ptr<unsigned long[]> list;
unique_ptr<ManyBuckets> globalBuckets;
vector< vector<unsigned long> > arr;
arr
是 A ManyBuckets
类中的私有方法。
该程序应该获取n
数量的存储桶并将它们组合到列表数组中。
bucket[i]
应该是bucket[j]
的,list
假设它指向一个足够大的数组来容纳所有存储桶,应该使用每次插入都会递增的索引。因此,请将其更改为:
void combineBuckets() {
int idx = 0;
for (unsigned int i = 0; i < numBuckets; ++i) {
auto bucket = globalBuckets->getBucket(i);
for (unsigned int j = 0; j < globalBuckets->getNumItemsInABucket(i); ++j) {
list[idx++] = bucket[j];
}
}
}
相关文章:
- 将字符串存储在c++中的稳定内存中
- std::原子加载和存储都需要吗
- C++:将控制台输出存储在宏中更好吗
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 可组合的lambda/std::函数与std::可选
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 使用QProcess执行命令,并将结果存储在QStringList中
- 混合组合和继承的C++问题
- 访问存储在向量C++中的结构的多态成员
- 如何从存储在std::映射中的std::集中删除元素
- 我需要将多个函数组合为一个函数
- 存储模板类型以强制转换回派生<T>
- 如何使用矢量组合存储桶
- 如何使用某些MPI命令(或组合命令)之间在两个处理器之间交换2D数组中存储的数据
- 以数组的形式存储组合框项,并在 WPF 中检索 SelectedId
- 查找存储在一个数组中的数字组合,并将这些组合存储在另一个数组
- 我应该如何使用 std::map<> 来聚合/组合存储在数组C++中的数据?
- 查找和存储组合
- 组合存储/加载连续的原子变量
- 新建/删除/免费存储和 malloc/免费/堆组合