STDLIB中容器元素类型有什么要求?
What are the requirements for container element type in STDLIB?
我知道的一件事可能不是真的,那就是T
应该是可复制构造的,也就是说,T
应该有一个可访问的复制构造函数。
但是,还有其他要求吗,例如副本可分配?
作为补充,我记得有效 STL说vector<bool>
不是标准容器,因为它不符合T *p=&c[0]
格式良好的要求。
我认为对序列容器和关联容器有不同的要求。例如,以下是矢量(有关详细信息,请参阅 cppreference.com(。另外,请注意,它已使用较新版本的 c++ 进行了更改。
T 必须满足 CopyAssignable 和 CopyConstructable 的要求。 (至C++11(
对元素施加的要求取决于对容器执行的实际操作。一般来说,它是 要求元素类型是完整类型并满足 可擦除的要求,但许多成员函数施加了更严格的要求 要求。(自C++11起((至C++17(
对元素施加的要求取决于对容器执行的实际操作。一般来说,它是 要求元素类型满足"可擦除"的要求,但 许多成员函数提出了更严格的要求。此容器 (但不是其成员(可以使用不完整的元素实例化 如果分配器满足分配器完整性,则键入 要求。(自C++17起(
相关文章:
- 静态自动 constexpr t = { "red" , "black" , "green" } 是什么类型;派生到?
- 这是什么类型的C++语法,我应该采取什么步骤来理解这一点
- 当你只使用 return 时,函数返回什么类型;在 c++ 中
- 这在C++是什么类型的错误?
- 如果在 C++ 构造函数中以错误的顺序初始化对象数据,会发生什么类型的错误
- 重载运算符返回什么类型的值(对于用户定义的类型):右值还是左值?
- int(int)& 或 int(int) const &是什么类型?
- 它>首先给出什么类型?
- ``n = 1u;'有什么类型
- 访问和存储/解析性std :: Chrono ::持续时间:: milliseconds(cpprest)时使用什么类型
- 二进制要找到什么类型的序列化
- 我如何找出3D容器的元素是什么类型
- C++ - 函数中的局部指针变量具有什么类型的存储持续时间以及它们存储在哪里?
- 将 lambda 作为模板参数传递:实际推导出什么类型
- 在 c 和 c++ 中,二维数组的元素是什么类型?
- 什么类型会使"std::has_unique_object_representations"返回 false?
- 这个 lambda 的参数是什么类型?
- 转换逻辑目标是什么类型
- 由值持有的成员的get函数应该具有什么类型
- C++中使用什么类型来定义数组大小