C++ - 在循环内声明引用变量?

标签 c++ variables loops reference declaration

据我所知,在循环内声明 POD 类型或原始类型的变量是可以的(没有开销)。

引用变量怎么样?
在循环内声明引用变量对性能有影响吗?

例如,一个变量引用一个 vector ,如下所示:

vector<vector<int> > data (100, vector<int> (100));
for (int i = 0; i < 100; ++i) {
    vector<int> &row = data[i];
    ...
}

不会有开销,对吧?

谢谢。

最佳答案

从性能的角度来看,引用在计算上与指针一样复杂(并且通常以相同的方式在内部实现)。

初始化引用本身没有比初始化指针更多的开销。

不过,根据您的用例,您可能会发现使用迭代器更简单且同样高效(如果稍微冗长)。

vector<vector<int> > data (100, vector<int> (100));
for (vector<vector<int> >::iterator row = data.begin(); row != data.end(); ++row) {
    // (*row)[0] = 1;
}

关于C++ - 在循环内声明引用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15478834/

相关文章:

javascript - 可以获取要在 javascript 上设置的变量

javascript - 如何在 JavaScript 对象文字中使用变量作为键?

c# - 想使用 LINQ 而不是 foreach 但它不起作用

c++ - 测试一个类是否是多态的

c++ - "increment"`std::variant` 替代品

java - java接口(interface)中的变量

C/C++ : is GOTO faster than WHILE and FOR?

android - 如何使用for循环在android kotlin中制作多个对象

c++ - 基数排序算法说明

c++ - 使用模板参数作为模板参数