相关疑难解决方法(0)

如何使我的自定义类型与"基于范围的for循环"一起使用?

像许多人一样,我一直在尝试C + 11带来的不同功能.我最喜欢的一个是"基于范围的循环".

我明白那个:

for(Type& v : a) { ... }
Run Code Online (Sandbox Code Playgroud)

相当于:

for(auto iv = begin(a); iv != end(a); ++iv)
{
  Type& v = *iv;
  ...
}
Run Code Online (Sandbox Code Playgroud)

而这begin()只是返回a.begin()标准容器.

但是,如果我想让我的自定义类型"基于范围的循环" - 意识到什么?

如果我只是专注begin()end()

如果我的自定义类型属于命名空间xml,我应该定义xml::begin()还是std::begin()

简而言之,这样做的准则是什么?

c++ customization for-loop c++11

230
推荐指数
5
解决办法
7万
查看次数

标签 统计

c++ ×1

c++11 ×1

customization ×1

for-loop ×1