所以我有课myClass
并且有两个私有(private)变量,比如说 i,j 和一个类方法 myMethod
如下-
std::pair<int, int > myClass::myMethod(void)
{
std::pair<int, int> Pair;
this->i = 100;
this->j = 50;
Pair.first = this->i;
Pair.second = this->j;
return Pair;
}
我从另一个函数调用如下方法-std::pair<int, int> receivedPair = myClass.myMethod();
所以如果我编辑 receivedPair
让我们说receivedPair.first = 200;
将 Class 变量 i
也变成等于200?我基本上需要通过引用几个串联函数来传递变量,以便更新相同的内存位置......
TIA
最佳答案
std::pair
的值是按值(value)计算的。
在你的情况下,虽然你可以使用
std::pair<std::reference_wrapper<int>, std::reference_wrapper<int>>
作为类型。引用:https://en.cppreference.com/w/cpp/utility/functional/reference_wrapper
关于c++ - 值是按引用还是按值存储在 std::pair<> 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63522732/