gpt4 book ai didi

c++ - 创建变量的别名?

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

我在创建变量别名时遇到了难题,需要您的帮助。

目的

我的函数需要两个 vector ,但我想确保 vector 变量“a”将引用较长的一个。同时,我不想复制 vector 。因此,我使用引用来创建别名,但我进退两难。

情况一

看不到变量,因为变量在if子句中,但我需要if子句才能知道哪个更长.....

vector<float> conv(const vector<float> &operand1, const vector<float> &operand2){


if (operand1.size() < operand2.size()){
const vector<float> &a = operand2;
const vector<float> &b = operand1;
}
else{
const vector<float> &a = operand1;
const vector<float> &b = operand2;
}

情况二

在 if 子句之外声明引用。不幸的是,必须在声明时初始化引用。但是,我需要 if 子句来知道将其声明为哪个操作数。

vector<float> conv(const vector<float> &operand1, const vector<float> &operand2){

const vector<float> &a;
const vector<float> &b;

if (operand1.size() < operand2.size()){
&a = operand2;
&b = operand1;
}
else{
&a = operand1;
&b = operand2;
}

有什么办法解决这个问题吗?非常感谢。

最佳答案

这是你想要的吗:

vector<float> conv(const vector<float>& op1, const vector<float>& op2) {
const vector<float> &a = op1.size() < op2.size() ? op2 : op1; // the longer one
const vector<float> &b = op1.size() < op2.size() ? op1 : op2; // the other
...
}

关于c++ - 创建变量的别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33839348/

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