c++ - 在 C++ 中将 vector 中的对象方法应用于第二个 vector 中的对象

标签 c++ loops c++-standard-library

我正在尝试找到一种优雅的方式来执行以下循环:

std::vector<A> a = {...};
std::vector<B> b = {...}; # assume a.size() == b.size()

for (int i = 0; i < a.size() ; ++i){
    a[i].Method(b[i]);
}

我期待某种标准算法可以为我做到这一点,但也许它不存在。也许是这样的:

std::apply(a.begin(),a.end(),b.begin(),Method)

如果您知道任何可以做到这一点的函数,谢谢您。

最佳答案

尝试一下:

auto&& it=b.begin();
for_each(a.begin(), a.end(),[&](value_type& v){v.Method(*it++)});

关于c++ - 在 C++ 中将 vector 中的对象方法应用于第二个 vector 中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49535303/

相关文章:

c++ - 为什么 C++ 标准库更喜欢模板而不是枚举?

c++ - 生成器列表与 C++ 标准库?

c++ - std::set比较器

c++ - 使用 WSARecv() 和 IOCP 时如何知道套接字何时收到 FIN 数据包?

loops - Go:比较两个 slice 并删除多个索引

linux - 将每个目录的名称添加到linux中相应目录内的文件中

c++ - 标准 C++ 库中 size_t 的有符号变体

c++ - 如何解决 WSAEWOULDBLOCK 错误

c++ - 谁可以从mark的文档中给我这个代码的主程序?

c - 我不明白为什么这个循环会卡住