,可以使用以下步骤:
<vector>
和 <algorithm>
头文件。vector<vector<int>> matrix
,并向其中添加数据。transform
算法结合 lambda 表达式来提取第一列。transform
算法可以将一个范围内的元素转换为另一个范围,并将结果存储在另一个容器中。transform
算法结合 lambda 表达式来提取第一列。transform
算法可以将一个范围内的元素转换为另一个范围,并将结果存储在另一个容器中。transform
函数接受三个参数:待转换范围的起始迭代器、待转换范围的结束迭代器和存储结果的目标容器的起始迭代器。lambda 表达式用于指定转换规则,这里返回每行的第一个元素。firstColumn
向量中存储了提取的第一列数据。以下是对应的完善且全面的答案:
在2D向量上使用STL算法提取第一列,可以使用STL中的transform
算法结合lambda表达式来实现。首先,确保已经包含了<vector>
和<algorithm>
头文件。然后,定义一个二维向量matrix
并向其中添加数据。接下来,创建一个与matrix
行数相同大小的一维向量firstColumn
,用于存储提取的第一列数据。最后,使用transform
算法将matrix
中每行的第一个元素提取出来,并存储到firstColumn
中。
示例代码如下:
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<vector<int>> matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
vector<int> firstColumn(matrix.size());
transform(matrix.begin(), matrix.end(), firstColumn.begin(), [](const vector<int>& row) {
return row[0];
});
// 输出提取的第一列数据
for (const auto& num : firstColumn) {
cout << num << " ";
}
return 0;
}
上述代码中,我们定义了一个二维向量matrix
,并初始化了一些数据。然后,创建了一个与matrix
行数相同大小的一维向量firstColumn
,用于存储提取的第一列数据。使用transform
算法,我们将matrix
中每行的第一个元素提取出来,并通过lambda表达式返回。最后,我们遍历输出了提取的第一列数据。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅为示例,实际使用时应根据具体需求选择适合的腾讯云产品。
领取专属 10元无门槛券
手把手带您无忧上云