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>
包含在您的 header 中。然后你正在创建一个指针,但它指向的地方没有 object 。尝试
#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;
}
所以我尝试绕过智能指针,但就是无法正常工作!
#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>
包含在您的 header 中。然后你正在创建一个指针,但它指向的地方没有 object 。尝试
#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;
}