标准::basic_string类型的 stl 容器

Stl container of std::basic_string type

本文关键字:stl 容器 类型 string basic 标准      更新时间:2023-10-16
#ifndef UNICODE
#define UNICODE
#endif
#include <iostream>
#include <queue>
#include <stdio.h>
#include <Windows.h>
#include <string>
using namespace std;
int __cdecl main()
{   
    std::queue<std::basic_string<TCHAR>> results;
    results.push(TEXT("Hello world! ♥☻☺"));
    wcout<<results.front();
    delete [] results.front();
    system("pause");
    return 0;
}
错误

1 错误 C2440:"删除":无法从 "std::basic_string<_Elem,_Traits,_Ax>"改为"void" *' C:\Users\Tomek\Documents\Visual Studio 2010\Solutions\clean_rough_draft\clean_rough_draft\main.cpp 20 1 clean_rough_draft

为什么抛出这样的错误以及如何解决它?

您的第一个问题是您忘记包含<string>

您当前的问题是删除没有意义。 你的字符串不是动态分配的,front() 无论如何都会返回对它的引用。因此,您正在尝试对不是数组(字符串是封装数组的对象)并且首先不是动态分配(并且在引用而不是指针上)的东西上调用数组删除。