当前位置: 首页 > 知识库问答 >
问题:

如何使用这些初始化创建unique_ptr?

夏学名
2023-03-14

使用具有以下初始化的std::make_unique创建std::unique_ptr的等效版本是什么?

int main()
{
    // Single object
    // 1
    new int; // Indeterminate value
    // 2 
    new int(); // Zero initialized
    // 3
    new int(7); // Initialized with 7

    // Arrays
    // 1
    new int[10]; // Indeterminate values
    // 2
    new int[10](); // All zero-initialized
    // 3
    new int[10]{ 7, 6, 5, 4 }; // Initialized with list, rest all zero


   }

共有1个答案

陆仲渊
2023-03-14

对应部分为:

// Single object
// 1
new int; // Indeterminate value
std::make_unique_for_overwrite<int>(); // since C++20

// 2 
new int(); // Zero initialized
std::make_unique<int>();

// 3
new int(7); // Initialized with 7
std::make_unique<int>(7);

// Arrays
// 1
new int[10]; // Indeterminate values
std::make_unique_for_overwrite<int[]>(10); // Since C++20
// 2
new int[10](); // All zero-initialized
std::make_unique<int[]>(10);
// 3
new int[10]{ 7, 6, 5, 4 }; // Initialized with list, rest all zero
std::unique_ptr<int[]>{ new int[10]{ 7, 6, 5, 4 } };

std::make_unique_for_overwrite仅为C++20。

 类似资料:
  • 我使用FFMPEG-segment对桌面上的视频捕获进行分段,并通过网络发送它们,以便提供给客户,并使用dash.js播放。问题是播放器正在搜索初始化段,而我似乎不知道如何创建它。 我使用以下ffmpeg命令创建段: 我为流创建的清单如下所示: 播放机调试模式打印以下内容: 如何为生成的段创建初始化段?我似乎无法让它起作用。

  • 问题内容: 我正在尝试移植以下Python代码行: Java。我能够通过这种方式做到这一点: 我尝试使用类似的变量方法: 但我得到这个错误: 我想我需要使用该值设置一个特殊的属性,或者以后需要对其进行初始化。但是我找不到路。 我计划对大多数其他tf方法执行相同的操作(这是我目前的工作)。所以我想了解如何自己提出答案。例如,通过查看以下Python来源: https://github.com/ten

  • 我希望转换之间的HLS和MPEG破折号。我不能访问原始的完全串联的视频文件,只有个别的HLS段。 在进行到MPEG破折号的转换时,我需要为破折号manifest.mpd文件提供一个初始化段。 我的问题是: null 非常感谢。 更新:使用原始hls段的流代码段。视频一直在播放,但只是黑色的。

  • 我有一组常量值,可以作为列表使用。使用这些值,我必须创建一个键值对对象,并且必须将该对象添加到列表中。我想在JAVA 8中使用流API来实现这一点。下面是使用for循环的示例实现 这可以使用流减少操作来实现吗?

  • 我有一个以下类别的StorageProxy。java(接口)StorageProxyImpl1。java(StorageProxy接口的实现1) 我在Application类中有一个main方法,用于初始化和使用Resource1和Resource2。 我想为StorageProxy提供依赖注入的指导,这样在创建新的实现时就不会有太大的麻烦。我希望Resource1和Resource2使用相同的S

  • 问题内容: 我想在容器的MySQL上设置初始数据。在docker-compose.yml中,此类代码可以在运行容器时创建初始数据。 但是,运行时如何在Kubernetes上创建初始数据? 问题答案: 根据MySQL Docker映像README,与容器启动时的数据初始化有关的部分是确保所有初始化文件都已安装到容器的文件夹中。 您可以在中定义初始数据,然后将相应的卷挂载到pod中,如下所示: