gpt4 book ai didi

c++ - 对象之间的标准高效映射

转载 作者:行者123 更新时间:2023-11-30 05:40:33 25 4
gpt4 key购买 nike

我正在研究聚类问题,我有一个叫做距离矩阵的东西。这个距离矩阵是这样的: Distance Matrix

  1. 节点数(g)为N(动态)
  2. 这个矩阵是对称的 (dist[i,j]==dist[j,i])
  3. g1,g2,.... 是对象(它们包含字符串、整数,甚至更多......)
  4. 我希望能够通过像 dist[4][3] 这样的简单方式或者像 dist(g1,g5) 这样更清晰的方式来达到任何值(这里 g1 和 g5 可能是某种指针或引用)
  5. 许多标准算法将应用于此距离矩阵,如最小值、最大值、累积......等
  6. 最好但不是强制性的,我不想使用 boost 或其他第 3 方库

声明此矩阵的最佳标准方法是什么。

最佳答案

你可以像这样创建二维 vector

std::vector<std::vector<float> > table(N, std::vector<float>(N));

不要忘记像这样初始化它,它为 N 个成员保留内存,所以它不需要重新分配所有成员,然后再添加更多。并且不会碎片化内存。你可以像这样访问它的成员

table[1][2] = 2.01;

它并不总是使用复制构造函数,因为 vector 索引运算符返回对成员的引用;所以如果 N 不需要改变,它是非常有效的。

关于c++ - 对象之间的标准高效映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31567900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com