Stl容器的std :: basic_string类型

时间:2012-10-08 23:53:00

标签: c++ string stl queue

#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的&LT; _Elem,_Traits,_AX&GT;' '无效   *'C:\ Users \ Tomek \ Documents \ Visual Studio 2010 \ Solutions \ clean_rough_draft \ clean_rough_draft \ main.cpp 20 1 clean_rough_draft

为什么会抛出这样的错误以及如何修复它?

1 个答案:

答案 0 :(得分:4)

您的第一个问题是忘记加入<string>

您当前的问题是您的删除毫无意义。您的字符串未动态分配,而front()仍会返回对它的引用。所以,你试图在不是数组的东西上调用数组删除(字符串是封装数组的对象)并且首先没有动态分配(并且在引用而不是指针上)