2017-08-15 76 views
-4

沒有此功能的問題,由於您使用一個版本的Visual Studio和它的我不能做一個compail不是「的std ::矢量成員<_Ty>

TPacketGCShopStart* p = (TPacketGCShopStart*)vecBuffer.data(); 

Error 1 error C2039: 'data' : is not a member of 'std::vector<_Ty>' e:\source\clinet\UserInterface\PythonNetworkStreamPhaseGame.cpp 1691 UserInterface

+1

首先,不要在C++中使用C風格的轉換。這往往表明你做錯了什麼。 –

+1

啓用C++ 11 ... – LogicStuff

+0

至於你的問題,你正在使用哪個版本的Visual C++(我猜)?看起來你正在使用一個非常舊的版本,一個沒有實現C++ 11標準的地方[數據函數](http://en.cppreference.com/w/cpp/container/vector /數據)被添加。 –

回答

3

C++編譯器不支持C++ 11標準(其中添加了the data function),您有兩種解決方案:

  1. 更新到Visual Studio的更高版本。
  2. 記住,通過std::vector處理的存儲器是連續的像陣列,並且然後可以使用相同的語法獲取一個指針的第一個元素:TPacketGCShopStart* p = &vecBuffer[0]

我比較推薦第一溶液中,更新所述IDE,因爲VS2008既不支持也不支持許多現代C++功能,使C++程序員的生活變得更加簡單。

+0

感謝這個問題 \t \t爲(自動它= m_mapShopSign.begin();它= m_mapShopSign.end(); ++吧!) 錯誤 缺少類型說明符 - 假定爲int。注意:C++不支持default-int –

+0

@EMadYounis同樣的問題,用C++ 11添加了用於類型推斷變量的「auto」。 –

相關問題