gpt4 book ai didi

c++ - 如何使用 std::back_inserter 插入容器(只有一个指向容器的指针)

转载 作者:行者123 更新时间:2023-11-28 06:24:24 28 4
gpt4 key购买 nike

我想从 foo 转换为 bar。

struct A
{
explicit A(int d): m_d(d) {};
private:
int m_d;
};
A some_function (int i) { return A(2*i); }

std::vector<int> foo;
std::vector<A> bar; // This is part of a Library not under my control

接口(interface)只提供pbar

std::vector<A>* pbar =&bar; // This is the interface to the part of a Library not under my control

取消引用 pbar 并将其用作 back_inserter 的参数是否合法?为什么?

std::transform (foo.begin(), foo.end(), std::back_inserter(*pbar), some_function);

这里有一个完整的例子:http://coliru.stacked-crooked.com/a/2aec8d000cabf78b

最佳答案

是的,这样做完全没有问题。我不太确定你困惑的根源是什么,所以我不确定如何回答“为什么”。如果你有一个指向对象的非 const 指针,你可以取消引用它并将它传递给需要非 const 引用的函数(如 std::back_inserter).

关于c++ - 如何使用 std::back_inserter 插入容器(只有一个指向容器的指针),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28764874/

28 4 0
文章推荐: javascript - Angular 指令 - 模板和 com 更改
文章推荐: html - 使用 iframe 填充整个剩余屏幕制作表格行
文章推荐: javascript - 当我多次单击提交按钮时(当加载发帖时),该帖子会被多次发帖
文章推荐: html - 调整侧边栏旁边
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com