gpt4 book ai didi

使用 STL 开始和结束设置的 C++ 指针数组

转载 作者:行者123 更新时间:2023-11-28 01:39:15 25 4
gpt4 key购买 nike

我正在学习 C++ 并遇到一种情况,我必须将数组转换为集合

我有一个保存数组地址的指针,我想将数组的所有唯一元素放入 set 中。使用 STL 怎么可能。下面是我的代码 spinet,我也在寻找好的解释。

#include<set>

void possiblepermutation(int *array) {
set<int> roots(begin(array),end(array));

}

阅读下面的评论后,我了解到当我传递指针时 begin() 和 end() 将不知道 start 和 end 。如果我传递数组大小和数组指针,你能帮我吗?

void possiblepermutation(int *array , int n) {
set<int> roots(begin(array),end(array)); // HOW TO THEN

}

最佳答案

std::beginstd::end 不返回已衰减为指针类型的数组的范围。他们所看到的只是一个指针。通俗地说,他们不知道指针实际上指向数组中的第一个元素。

你的工作是将 C++ 标准库 containerstd::vector 传递给你的函数,可能是通过引用,或者传递数组的长度作为一个参数:例如

void possiblepermutation(int* array , std::size_t n){
std::set<int> roots(array, array + n);

关于使用 STL 开始和结束设置的 C++ 指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48021204/

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