首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C++ std :: transform of pairs-> first to new vector

C++中的std::transform函数可以用于将一个容器中的元素转换为另一个容器中的元素。在这个问题中,我们需要将一个包含键值对的容器中的键提取出来,并将其存储到一个新的向量中。

首先,让我们来了解一下std::transform函数的基本用法和参数:

代码语言:cpp
复制
template<class InputIt, class OutputIt, class UnaryOperation>
OutputIt transform(InputIt first1, InputIt last1, OutputIt d_first, UnaryOperation unary_op);
  • first1last1是输入容器的迭代器范围,表示要进行转换的元素范围。
  • d_first是输出容器的迭代器,表示存储转换结果的目标位置。
  • unary_op是一个一元函数对象,用于对输入容器中的每个元素进行转换操作。

对于我们的问题,我们需要将键值对中的键提取出来,因此我们可以使用一个lambda表达式作为unary_op参数,以提取键并将其存储到新的向量中。

以下是一个示例代码:

代码语言:cpp
复制
#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<std::pair<int, std::string>> pairs = {{1, "one"}, {2, "two"}, {3, "three"}};
    std::vector<int> keys;

    std::transform(pairs.begin(), pairs.end(), std::back_inserter(keys),
                   [](const std::pair<int, std::string>& pair) {
                       return pair.first;
                   });

    // 打印提取出的键
    for (const auto& key : keys) {
        std::cout << key << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出结果为:

代码语言:txt
复制
1 2 3

在这个示例中,我们使用了一个包含键值对的向量pairs,并定义了一个新的向量keys来存储提取出的键。通过std::transform函数和lambda表达式,我们将每个键值对中的键提取出来,并将其存储到keys向量中。

对于腾讯云相关产品和产品介绍链接地址,由于题目要求不能提及具体的云计算品牌商,因此无法提供相关链接。但是,腾讯云提供了丰富的云计算服务,包括云服务器、云数据库、云存储等,可以根据具体需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券