gpt4 book ai didi

c++ - 如何使用转换函数模板将 map 转换为 vector

转载 作者:行者123 更新时间:2023-11-30 02:51:38 25 4
gpt4 key购买 nike

我想将 map 转换为 vector 。

int main()
{
map <int,int> m;
m[0]=99;
m[1]=5;

vector<int> v;
transform( m.begin(), m.end(), back_inserter( v ), ??? );
}

我可以使用 STL 中的哪个函数代替 ???。我做了很多谷歌搜索,但没有找到任何东西。

任何讨论都会有所帮助。

最佳答案

或者使用 lambda:

transform(m.begin(), m.end(), back_inserter(v),
[](pair<const int, bool> const & p) { return p.second; });

或者用一个简单的循环:

for (const auto & p : m) { v.push_back(p.second); }

或者使用旧式循环:

for (map<int, bool>::const_iterator it = m.begin(); it != m.end(); ++it)
{ v.push_back(it->second); }

在任何情况下,请事先调用 v.reserve(m.size()) 以避免重新分配。

关于c++ - 如何使用转换函数模板将 map 转换为 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19588420/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com