c++ - 值是按引用还是按值存储在 std::pair<> 中?

标签 c++ c++17 std-pair

所以我有课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/

相关文章:

c++ - target_include_directories 如何工作 cmake 如何包含本地库 <path/lib.h>

c++ - 与 [[maybe_unused]] 的结构化绑定(bind)

c++ - "group"模板特例是否可能?

c++ - 是否可以使用自定义类代替 STL 映射中的 std::pair?

C++如何通过忽略每行的第一个字符来读取unicode文件

c++ - 处理多个 std::async 调用

c++ - VS 选错专业了吗?为什么?

c++ - 如何简化这个 if 语句?

c++ - 用于存储大量索引的数据结构,每个索引指向一个集合

c++ - 为什么 std::get<T> for `variant` 是一个全局函数?