c++ - 如何使用向量组合桶
问题描述
我正在为学校做一个项目,但在组合水桶时遇到了麻烦。
这是我现在的方法。
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
是ManyBuckets
类中的私有方法。
该程序应该采用n
一定数量的桶并将它们组合到列表数组中。
解决方案
bucket[i]
应该是bucket[j]
and 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];
}
}
}
推荐阅读
- angular - 如何从搜索引擎的以下网站链接中删除或编辑“Ionic APP”?
- sql - SQL 将分钟转换为小时增量
- python-3.x - Python:从列表中提取值作为浮点数而不是列表
- python - 使用 Wordpress 在我的 Python REST API 上出现 403 错误
- sql - SQL-计算比率并获得具有相应用户和日期详细信息的最大比率
- javascript - 无法从另一个类访问类的属性
- javascript - 如何使用 ES6 类和对象创建图书列表
- android - 渐变的透明度
- c++ - 计算 DirectX11 和 OpenGL 之间的着色器执行时间
- python - 如何将多个参数传递给 ThreadPoolExecutor executor.map()?