C++:通过常量引用传递指针矩阵
C++: pass matrix of pointers by const reference
我的问题有点简单,可能很愚蠢,但是如果我有一个像int ** max
这样的动态矩阵并将其传递给函数calculateCost(int ** max, int n))
。
我的问题是:如何将其作为参考传递const
?
不可能传递指针引用(请参阅此答案(。
因为引用不是对象,所以没有引用数组, 没有指向引用的指针,也没有指向引用的引用:
int& a[3]; // error int&* p; // error int& &r; // error
您可能希望使用 STL 的向量来替换您拥有的每个指针。 int calculateCost(const std::vector> &max, int n(;
这将允许您执行指针可以执行的所有基本运算符,但具有额外的功能,例如更容易初始化,调整大小和ranged_for_loops。
template<typename T>
using matrix_t = std::vector<std::vector<T>>;
size_t width = 5, height = 3;
// std::vector<std::vector<int>> is the same as matrix_t<int>
matrix_t<int> my_matrix(height, std::vector<width, 0>);
这里有一些有用的链接来替换malloc,新的,删除...
- 来自 2d 常量阵列
的 2d 矢量- unique_ptr
- shared_ptr
- make_unique
- make_shared
祝您新年快乐!
编辑: 如上述评论所述,在您的情况下使用 refs 是没有用的,您可以只使用 const 双指针
相关文章:
- 如何使用基类指针引用派生类成员
- 将常量指针引用绑定到非常量指针
- 如果非动态变量被指针引用,何时超出范围?
- 转换指针引用的字符串
- 指针引用的生存期(以 C++为单位)
- 从 unique_ptr::get 发送指针作为指针引用进入函数
- 指针/引用的 CLion 格式
- 使用模板专用化来比较指针引用
- 如何保存指向抽象基类的指针/引用,但在 c++ 中仍然可以复制
- C++初始化指针/引用/复制细微差别
- 用数组或指针引用函数?
- 指针范围问题和返回类中封装的指针向量内的指针引用
- 强制转换为指针引用是否会导致未定义的行为
- 访问由 void 指针引用的结构的成员
- C 为什么当先前的步骤引发异常时,std :: shared_ptr的指针引用会被破坏
- 动态指针引用数组由三元运算符返回值,但有异常
- 悬空指向 int 和 char* 常量的指针/引用
- C++ 二维数组和指针引用
- 通过使用指针/引用,在C++中使用向量加快计算速度
- C++非类型模板模板到函数指针/引用