因此,一旦std::pair初始化了至少一个引用变量,例如像这样:
int a = 53;
int b = 42;
std::pair<int, int&> foo(33, a);
Run Code Online (Sandbox Code Playgroud)
有没有办法改变引用变量的指向?
任务:
foo = std::make_pair(33, std::ref(b));
Run Code Online (Sandbox Code Playgroud)
和交换:
std::pair<int, int&> bar(33, b);
foo.swap(bar);
Run Code Online (Sandbox Code Playgroud)
似乎只是将新内容移动到a并留下foo指向它之前 ( a)位置的第二个成员,因此没有做我在这里试图实现的目标。我知道引用不能像这里回答的那样反弹
,但这不是我在这里想要做的。我想要做的是制作一对新的并将其内容分配给现有的,这在技术上不是一回事。
提前致谢!
引用在 C++ 中总是以相同的方式工作。
int a;
int &b=a;
Run Code Online (Sandbox Code Playgroud)
b将始终是对a,的引用,直到b超出范围并被销毁。
std::pairs 或其他任何地方的引用都以相同的方式工作。一旦它们被绑定,它们将始终引用它们被绑定到的同一个对象。分配给引用将始终分配给引用的对象。
引用是什么、对 an int、 achar或任何其他对象的引用也无关紧要。在这方面,引用总是以相同的方式工作。
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |