c++ - 围绕现有数组的 STL 非复制包装器?

标签 c++ arrays stl iterator

是否可以为现有的 POD 类型元素数组创建一个类似 STL 的容器,或者甚至只是一个 STL 样式的迭代器?

例如,假设我有一个整数数组。如果能够调用一些 STL 函数,例如 find_if、count_if 或直接对此数组进行排序,将会很方便。

非解决方案:复制整个数组,甚至只是对元素的引用。目标是非常节省内存和时间,同时希望允许使用其他 STL 算法。

最佳答案

您可以直接在常规 C 样式数组上调用许多 STL 算法 - 它们就是为此而设计的。例如:

int ary[100];
// init ...

std::sort(ary, ary+100); // sorts the array
std::find(ary, ary+100, pred); find some element

我想你会发现大多数东西都像你期望的那样工作。

关于c++ - 围绕现有数组的 STL 非复制包装器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/176158/

相关文章:

c++ - 找不到体系结构 i386 cpp/mm 文件的符号

c++ - QVector2D* 大小未知

javascript - 解析具有重复键的嵌套 JSON 对象(PHP 或 JS)

javascript - javascript 键/值数组的词频

c++ - std::pair 有或没有标准布局:可以安全地重新解释_cast?

c++ - lang链接问题

c++ - 尝试提取不是结构的值的组成部分。 C++

java - 如何根据值用对象参数填充数组?

c++ - 如何从 std::string 中删除重复字符

STL - 交换的 noexcept 规范对性能有影响吗?