首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用向量组合桶

如何利用向量组合桶
EN

Stack Overflow用户
提问于 2019-07-23 04:43:44
回答 1查看 88关注 0票数 0

我正在为学校做一个项目,我很难把桶组合在一起。

这是我现在的方法。

代码语言:javascript
复制
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中拿出来
  • 将各个桶中的所有项复制到列表数组中。

这些是变量:

代码语言:javascript
复制
unique_ptr<unsigned long[]> list;
unique_ptr<ManyBuckets> globalBuckets;
vector< vector<unsigned long> > arr;

arrManyBuckets类中的一个私有方法。

这个程序应该获取n数量的桶,并将它们组合到列表数组中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-23 04:51:20

bucket[i]应该是bucket[j]list,假设它指向一个足以容纳所有存储桶的数组,那么应该使用一个索引来对每个插入进行增量。因此,将其更改为:

代码语言:javascript
复制
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];
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57156811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档