我正在尝试编译并运行此GUI代码
#include "Graph.h" // get access to our graphics library facilities
int main()
{
using namespace Graph_lib; // our graphics facilities are in Graph_lib
Point tl{ 100,100 }; // to become top left corner of window
Simple_window win{ tl,600,400,"Canvas" }; // make a simple window
Polygon poly; // make a shape (a polygon)
poly.add(Point{ 300,200 }); // add a point
poly.add(Point{ 350,100 }); // add another point
poly.add(Point{ 400,200 }); // add a third point
poly.set_color(Color::red); // adjust properties of poly
win.attach(poly); // connect poly to the window
win.wait_for_button(); // give control to the display engine
}
标头和代码文件的来源:http://www.stroustrup.com/Programming/PPP2code/
我收到hash_map错误
Error (active) E0035 #error directive: <hash_map> is deprecated and will be REMOVED. Please use <unordered_map>. You can define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS to acknowledge that you have received this warning. ConsoleApplication1 C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.24.28314\include\hash_map 21
什么原因导致hash_map错误,该如何解决?
答案 0 :(得分:1)
hash_map
是c ++ 11规范之前的旧API,他们决定该容器的名称为unordered_map
。您需要改用该名称。
答案 1 :(得分:1)
它就是它所说的。
标头<hash_map>
不是标准的,而是came from the actual STL。尽管it currently remains available on your platform,但它已“弃用,将被删除”。
您应该按照消息中的说明进行操作,然后切换到std::unordered_map
之类的现代工具。不幸的是,这意味着您会迷失您的原始资料。
我猜测错误本身来自fltk(Bjarne的代码似乎都没有包含该标头,尽管我只是快速浏览了它)。这些示例非常非常古老。
您可以改为从a modern book学习C ++。
同时,如错误消息所述,您可以定义_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
(在项目设置中的“预处理器定义”下)以确认这一点。
类似的问题: