要包含哪些头文件,才能访问诸如ContiguousContainer这样的标准概念?

编程语言 2026-07-09

我想创建一个带有参数变量的函数,使其满足C++标准中的 ContiguousContainer 要求。我的函数应该能够作用于实现该概念的任意类型,例如 std::vectorstd::array,并且也能适用于那些非传统、非标准但合适的类型(第三方连续容器)。

然而,我无法访问标识符 ContiguousContainer。我也找不到任何库,在被包含进来时,能够向我的编译器说明 ContiguousContainer 一词的含义。

你会怎么做?

或者,我是否应该自己实现概念 ContiguousContainer,并以我自己撰写的标准要求来断言我的函数参数变量(以及如果对函数进行模板化的话,它的类型模板参数)具备 size() 方法、具备 begin() 方法、定义必要的迭代器类型等,等等(大量的要求)。

解决方案

我找不到任何库,在被包含进来时,能够告诉我的编译器 ContiguousContainer 一词的含义。

标准在 container.reqmts 中确实定义了术语 "contiguous container"(连续容器):

一个 连续容器 是一个容器,其成员类型 iteratorconst_iterator 满足 Cpp17RandomAccessIterator 要求([random.access.iterators])并且符合 contiguous_iterator([iterator.concept.contiguous])。


你会怎么做?

一种选择是使用 std::ranges::contiguous_range

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章