簡體   English   中英

C ++智能指針錯誤

[英]C++ Smart Pointers erroring

因此,我嘗試繞過智能指針,但無法正常工作!

#include <iostream>
#include <queue>
#include <Windows.h>

int main()
{
    std::unique_ptr<std::queue<int>> s;
    s->push(14);
    s->push(2);
    for (int i = 0; i < s->size(); i++)
    {
        std::cout << s->front();
        std::cout << std::endl;
        std::cout << s->back();
        std::cout << std::endl;
    }
    Sleep(1500);
}

我究竟做錯了什么?

您缺少標題中的<memory> 然后,您將創建一個指針,但沒有指向它的對象。 嘗試

#include <iostream> // std::cout
#include <queue> // std::queue
#include <Windows.h> // Sleep
#include <memory> // std::unique_ptr & std::make_unique

int main()
{
    // next line returns an std::unique_ptr<std::queue<int>>, hence the 'auto'
    auto s = std::make_unique<std::queue<int>>();
    s->push(14);
    s->push(2);

    std::cout << s->front() << "\n";
    std::cout << s->back() << "\n";

    Sleep(1500);
    return 0;
}

現場演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM