gpt4 book ai didi

c++ - 如何使用结构化绑定(bind)来设置数组的值?

转载 作者:行者123 更新时间:2023-12-04 12:12:22 26 4
gpt4 key购买 nike

我是 C++17 的新手,当我尝试使用结构绑定(bind)为几个数组单元格设置值时遇到了问题。但是常规语法在这里不起作用;它与数组的括号混淆。
我该如何解决?甚至有可能吗?
例子:

std::pair<int, int> makePair() {
return { 10, 20 };
}

int main() {
int arr[20];

// error here
auto [arr[0], arr[1]] = makePair();
}

最佳答案

这是工作的错误工具。结构化绑定(bind)总是引入新名称;他们不接受左值的任意表达式。
但是即使在 C++11 中你也可以做你想做的事。有 std::tie ,为了这个确切的目的:

std::tie(arr[0], arr[1]) = makePair();
给它一堆左值作为参数,它会产生一个对它们的引用的元组。 std::tuplestd::pair 互动(被视为二元组),并且成员分配修改您命名的数组元素。

关于c++ - 如何使用结构化绑定(bind)来设置数组的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69291570/

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