【发布时间】:2010-08-27 00:02:50
【问题描述】:
我希望能够写出类似的东西
char f(char);
vector<char> bar;
vector<char> foo = map(f, bar);
transform 函数看起来很相似,但它不会自动生成结果集合的大小。
【问题讨论】:
-
我认为有些人的 Perl 太多了。我曾经尝试在 C++ 中实现类似的东西,但很快它就变得非常低效:与 C++ 不同,Perl 具有高级优化器,它知道数组、哈希或字符串是什么,并相应地优化对它们的操作。
-
STL 有
std::map作为集合。您可以在任何其他命名空间中拥有自己的map。 -
@Dummy:
map存在于 Perl、Python 和 Lisps 中;这是一个方便的高级构造,可以简单地描述一个常见的操作。 -
@MSalters:这更像是搜索 STL 中映射操作的问题,而不是实际名称。 :-)
-
你现在正在寻找的东西被称为“范围”,并且作为外部库存在,并且最终会在某个时候出现在语言标准本身中。
标签: c++ map-function