使用基本阵列以实现兼容性



想象一下,一个库中的函数以数组为参数,在他们自己的代码中,用户可能会使用各种数组实现,有些会使用std::vectors,有些会用std::array,有些使用基本数组,有些甚至可能创建自己的类,我们无法满足每个用户。但是,每种类型的数组都有一个指针和一个大小(是否存储在某个地方,但已知(,使用指针和大小(如果需要(作为参数可以解决这个问题吗?

使用指针和大小(如果需要(作为参数可以解决这个问题吗?

是。这是从永远以来使用的典型的C-ish api,比如带边界检查的字符串函数或mem*函数,比如memcpymemcmp函数,或者qsort获取指针和元素计数等。

但是C++发现并不是每一个";阵列";实际上必须是一个数组,所以C++使用迭代器来抽象地传递某个东西的信息;迭代";每个CCD_ 4和CCD_;基本阵列";所有算法都有自己的迭代器,并且所有算法都是在考虑迭代器的情况下抽象编写的。因为迭代器重载了自定义运算符,所以您几乎可以做任何事情,比如ex。inserter允许在元素出现时将其放入向量中。

最近还增加了范围。范围颠倒了迭代器的语法,提供了更简单、更安全的使用和惊人而简单的功能。

最新更新