C++ 如何为变量使用别名?

C++ 如何为变量使用别名?,c++,C++,我想改进我的代码,是否有其他方法为父->值[I-1]分配别名值[i-1]指定别名 据我所知,唯一好的方法是创建一个引用,并像您已经做的那样使用该引用: Key &above = parent->values[i - 1]; 您关于运行时成本的假设似乎不正确——任何理智的编译器都会优化这段代码,所以您可能不必费心 是否有其他方法为父->值[i-1]指定别名 据我所知,唯一好的方法是创建一个引用,并像您已经做的那样使用该引用: Key &above = parent->

我想改进我的代码,是否有其他方法
父->值[I-1]分配别名<问题是,值[i-1]并没有真正揭示意图,但是引用需要花费一些运行时间

if (belegt < k) {
     if (prev && prev->belegt > k && prev->parent == parent) {
          for (size_t i = 0; i <= parent->belegt; i++) {
               if (parent->leafptr[i] == this) {
                    Key &above = parent->values[i - 1];
                    Key &previous = prev->values[prev->belegt - 1];

                    add(above, leafptr[0]);

                    leafptr[0] = prev->leafptr[prev->belegt];
                    leafptr[0]->setParent(this);

                    parent->replace_rekursiv(above, previous);

                    prev->belegt--;
                    break;
                }
           }
但这不会奏效吗

是否有其他方法为父->值[i-1]指定别名

据我所知,唯一好的方法是创建一个引用,并像您已经做的那样使用该引用:

Key &above = parent->values[i - 1];
您关于运行时成本的假设似乎不正确——任何理智的编译器都会优化这段代码,所以您可能不必费心

是否有其他方法为父->值[i-1]指定别名

据我所知,唯一好的方法是创建一个引用,并像您已经做的那样使用该引用:

Key &above = parent->values[i - 1];

您关于运行时成本的假设似乎不正确-任何一个理智的编译器都会优化此代码,因此您可能不会费事。

您确定引用会花费您任何费用吗?根据标准,引用不必占用任何空间。最有可能的是,虚拟引用将被优化。所以不用麻烦了。除非你需要效率,并且你已经做了基准测试并验证了它是有成本的,只要使用一个参考——过早的优化是万恶之源。以这种方式使用参考不会让你付出任何代价。编译器知道引用的内存的地址,并且您正在使用另一个名称引用它。这种抽象不会在生成的机器代码中结束。你可以自己测试一下。你确定推荐信花了你多少钱吗?根据标准,引用不必占用任何空间。最有可能的是,虚拟引用将被优化。所以不用麻烦了。除非你需要效率,并且你已经做了基准测试并验证了它是有成本的,只要使用一个参考——过早的优化是万恶之源。以这种方式使用参考不会让你付出任何代价。编译器知道引用的内存的地址,并且您正在使用另一个名称引用它。这种抽象不会在生成的机器代码中结束。你可以自己测试。好吧,那我相信编译器。我还应该避免过早优化。感谢you@dreiti是的,这就是我的意思:)假设OP在编译时启用了优化;-)@我希望如此!嗯,你应该使用引用使代码更容易阅读。好的,那么我相信编译器。我还应该避免过早优化。感谢you@dreiti是的,这就是我的意思:)假设OP在编译时启用了优化;-)@我希望如此!我的意思是,你应该使用引用使代码更容易阅读。