2016-08-30 56 views
-1

此代碼上的代碼塊,但不能在Visual Studio中:有誰知道什麼頭文件丟失?

Error C2679 binary '<<': no operator found which takes a right-hand operand of type 'std::_Vector_iterator<std::_Vector_val<std::_Simple_types<std::basic_string<char,std::char_traits<char>,std::allocator<char>>>>>' (or there is no acceptable conversion) 
+0

@JerryCoffin <<還是一樣的錯誤,即使有星號的 – jibzoiderz

+3

更仔細地看,你想要星號*和*你缺少一個標題('')。 –

+0

@JerryCoffin是的,現在工作時,我把頭字符串。我只是想知道爲什麼代碼在Codeblocks中工作(沒有頭字符串),而不是Visual Studio .....可能是Code Blocks中的一個錯誤 – jibzoiderz

回答

1

std::basic_string<string>頭正式定義:

// A simple program that prints string test1: 
#include <iostream> 
#include <vector> 

using namespace std; 

int main() 

{ 
    vector<string> test1 = { "pooping","reading" }; 


    for (vector<string>::iterator iter = test1.begin(); iter != test1.end(); iter++) 
    { 
     cout << *iter << endl; 
    } 
    system("pause"); 
} 

是Visual Studio的輸出錯誤。請參閱cppreference

0
#include<string> 

類模板basic_string存儲和處理char類對象的序列。該類既不依賴於字符類型,也不依賴於該類型的操作性質。操作的定義通過Traits模板參數提供 - std :: char_traits或兼容traits類的專門化。有關詳細信息,請參閱 std::basic_string

-1

增加頭部後,程序將無法編譯,它會拋出錯誤

"error: in C++98 'test1' must be initialized by constructor, not by '{...}'" 

檢查以下程序遵循另一種方法來初始化向量。

正如其他建議則需要添加

 #include<string> 

//一個簡單的程序,打印字符串測試1:

#include <iostream> 
    #include <vector> 
#include<string> 

using namespace std; 

int main() 

{ 
static const string arr[] = {"pooping","reading"}; 
vector<string> test1 (arr, arr + sizeof(arr)/sizeof(arr[0])); 

for (vector<string>::iterator iter = test1.begin(); iter != test1.end(); iter++) 
{ 
    cout << *iter << endl; 
} 
system("pause"); 
} 
相關問題