簡體   English   中英

Stl容器的std :: basic_string類型

[英]Stl container of std::basic_string type

#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:'delete':無法從'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()仍會返回對它的引用。 所以,你試圖在不是數組的東西上調用數組刪除(字符串是封裝數組的對象)並且首先沒有動態分配(並且在引用而不是指針上) 。

暫無
暫無

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

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