我正在尝试找到一种优雅的方式来执行以下循环:
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/