2011-12-06 22 views
10
sorun benim koduyla yanlış gittiğini anlamak yaşıyorum

:C++ STL kaldır hatası

#include <iostream> 

#include <string> 

using namespace std; 

int main(int argc, char* argv[]) { 
    string str = ""; 
    cin >> str; 
    remove(str.begin(), str.end(), ' '); 
    cout << str; 
    cin.ignore(); 
} 

hatası " 'kaldır': function (C2660) 3 argüman almaz" diyor

+5

Bunun yerine [this] (http://msdn.microsoft.com/en-us/library/2da4hk1d%28v=VS.100%29.aspx) işlevini çağırıyorsunuz. Tamamen minimal bir örnek program sağlamak için – Jon

+4

+1. http://sscce.org –

+2

@Jon: Güzel yakalama. Bu yüzden, her türlü işlevi gizlediğinden, namespace std'yi kullanmamayı tercih ediyorum. – Johnsyweb

cevap

18

eklemeyi deneyin

#include <algorithm> 

"algoritma" std dahil fonksiyonları, :: kaldırmak OP aramaya çalışıyor bir sürü içeren bir STL başlığıdır. Aldığı hata, bir dosyayı silen "kaldır" adı verilen tek bir argümanı alan başka bir işlev olduğu için oldu.

+0

Teşekkürler! Öyleydi! – tr0yspradling

+6

Bu sorunun yanıtlandığı şekilde işaretlemek için lütfen onay kutusunu tıklayın. – StilesCrisis

+0

Yapamam için 10 dakika beklemem gerek! Sana '' ne olduğunu açıklamak gerektiğini düşünüyorum – tr0yspradling