小编aob*_*aob的帖子

delete []是否等于每个元素删除.C++

大家!

让我们说我正在编写Array类并希望优化构造

data = reinterpret_cast<T*>(new char[sizeof (T) * size]);
    for ( int i = 0; i < size; ++i ) {
        new(&data[i]) T(some_value);
}
Run Code Online (Sandbox Code Playgroud)

而现在我想知道如何正确释放内存:

  1. delete[] data;

  2. for ( int i = 0; i < size; ++i ) { data_[i].~T (); }

c++ memory-management delete-operator

5
推荐指数
1
解决办法
92
查看次数

找到第n个最大的元素

我需要在数组中找到第n个最大的元素,目前我正在按照以下方式执行:

std::vector<double> buffer(sequence); // sequence is const std::vector<double>
std::nth_element(buffer.begin(), buffer.begin() + idx, buffer.end(), std::greater<double>());
nth_element = buffer[idx];
Run Code Online (Sandbox Code Playgroud)

但有没有办法在不使用外部缓冲区的情况下找到数组中的第n个最大元素?

c++ algorithm stl nth-element c++11

1
推荐指数
1
解决办法
690
查看次数