是C风格的阵列被认为是容器
Are c-style arrays considered containers?
是C风格数组,例如int holder[10]
被视为容器吗?我问的原因是,如果它们是逻辑上的有意义
否,它们不是容器,因为在ISO C 标准中,单词"容器"仅正式用于标准库中的容器类。相比之下,阵列的整个部分都不使用"容器"一词。请参阅最新C 17草稿中的§11.3.4。
您可以调用数组为"复合类型","对象的序列"或"聚合",而不是"容器"。
它们不是严格意义上的容器。
c std::array
是一个添加了本机数组丢失的几件事的容器(例如能够按值通过和返回数组)。
no,根据您的链接下的描述,如果不是。阅读您提供的链接,第一个单词:
一个容器是一个存储其他集合的持有物对象 对象(其元素)。它们被用作班级模板, 允许在支持元素的类型中具有巨大的灵活性。
容器管理其元素的存储空间并提供 成员功能可以直接或通过迭代器访问它们 (参考对象具有与指针相似的属性)。
容器复制编程中通常使用的结构: 动态数组(向量),队列(队列),堆栈(堆栈),堆 (Priority_queue),链接列表(列表),树(Set),关联数组 (地图)...
相关文章:
- 为什么rand()的使用被认为是不好的
- 为什么 std::shared_ptr 被认为是"heavy"和"expensive",但 std::array "same perfprmance as plain (c-style) arrays
- 一个C头文件可以被认为是一个接口吗
- 为什么const char*和const char[]作为函数参数被认为是等价的
- 为什么12.0==11.999999999999999999被认为是真的
- 这会被认为是糟糕的编程实践吗?
- 为什么这被认为是恒定的?
- 抽象类/接口中的空方法是否被认为是一种好的做法?
- 如果我具有调用其其他实例之一的超载函数,它是否被认为是递归功能
- std::unique_ptr可以被认为是一个monad吗?
- C++ 指向类的指针和/或引用是否被认为是"movable"?
- 使用自定义宏来简化 cin 和 cout 语句等内容被认为是更好还是更差
- 使用成员函数更改对象或返回并分配它是否被认为是更好的做法?
- 我很难修复我认为是双重免费的东西
- 使用 #define 被认为是"bad practice"吗?
- 是一个被认为是不同类型的班级内部的正向声明
- 这被认为是有效的C 11还是C 14?还是GCC/Clang弄错了
- 为什么这个嵌套的 lambda 不被认为是 constexpr?
- 限制C++中允许的模板参数是否被认为是不良样式?
- 是C风格的阵列被认为是容器