gpt4 book ai didi

c++ - shared_ptr 到数组的元素 (shared_ptr)

转载 作者:行者123 更新时间:2023-11-27 23:40:49 27 4
gpt4 key购买 nike

<分区>

我目前正在学习智能指针,但从“普通”指针过渡时遇到了一些麻烦。我想知道是否可以从指向 shared_ptr 数组内元素的函数返回 shared_ptr?

在 main 函数中我声明了一个 int 数组:

shared_ptr<int[]> arr(new int[size]);

我想创建的函数会将 shared_ptr 返回到数组的最小元素:

shared_ptr<int> getSmallestElement(shared_ptr<int[]> arr, int size) {
int smallestValue = arr[0], smallestIndex = 0;
for (int i = 1; i < size; i++) {
if (smallestValue > arr[i]) {
smallestValue = arr[i];
smallestIndex = i;
}
}
// what would be the equivalent shared_ptr code for the code below?
int *returnPointer = arr[smallestIndex];
return returnPointer;
}

我得到的最接近的,但这是使用我的普通指针的逻辑,是:

  shared_ptr<int> returnPointer = arr.get() + smallestIndex;
return returnPointer;

是否可以使用 shared_ptr 来做到这一点,或者使用 unique_ptr 是首选方式吗?

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