相关疑难解决方法(0)

什么是同时迭代两个或更多容器的最佳方法

C++ 11提供了多种迭代容器的方法.例如:

基于范围的循环

for(auto c : container) fun(c)
Run Code Online (Sandbox Code Playgroud)

的std :: for_each的

for_each(container.begin(),container.end(),fun)
Run Code Online (Sandbox Code Playgroud)

但是,建议的方法是迭代两个(或更多)相同大小的容器来完成以下操作:

for(unsigned i = 0; i < containerA.size(); ++i) {
  containerA[i] = containerB[i];
}
Run Code Online (Sandbox Code Playgroud)

c++ containers iterator c++11

98
推荐指数
10
解决办法
7万
查看次数

如何在一个范围内处理多个数组?

我想使用复制数组range for.可能吗?

像(显然不工作)的东西

unsigned arr[15] = {};
unsigned arr2[15];

for (auto i : arr, auto &j : arr2)
    j = i;
Run Code Online (Sandbox Code Playgroud)

或者是否有一些其他技巧可以避免操作数组的大小,如果我确定它们具有相同的长度?

UPD 我非常喜欢@PavelDavydov解决方案.但是,任何人都可以提供标准的lib解决方案.C++ 11也包含对和元组.

for (auto pair : std::make_tuple(&arr, &arr2));
Run Code Online (Sandbox Code Playgroud)

c++ arrays c++11

4
推荐指数
2
解决办法
257
查看次数

标签 统计

c++ ×2

c++11 ×2

arrays ×1

containers ×1

iterator ×1