Visual Studio C++ 2010 入门教程:使用与实践

4星 · 超过85%的资源 需积分: 10 5 下载量 3 浏览量 更新于2024-07-28 收藏 5.92MB DOC 举报
"《Microsoft Visual Studio C++ 2010入门经典》完全版.doc" 在深入探讨《Microsoft Visual Studio C++ 2010入门经典》这本书之前,我们需要了解C++编程的基础以及Visual Studio IDE(集成开发环境)的角色。C++是一种强大的面向对象的编程语言,它提供了丰富的功能,包括类、模板、异常处理和低级内存操作,适用于编写操作系统、游戏、应用程序等。而Visual C++是微软公司推出的用于开发C++应用的IDE,它集成了编译器、调试器和其他工具,为开发者提供了一个高效的开发环境。 Visual Studio不仅仅支持C++,它还支持多种编程语言,如C#、VB.NET、Python等。它包含了一系列用于软件开发的工具,如代码编辑器、项目管理、版本控制、测试工具等。对于初学者来说,Visual Studio 2010的用户界面友好,可以帮助快速上手编程。 本书作者提到,许多C++初学者可能会对如何开始编程感到困惑,因为传统的教材往往只关注语言语法,而忽视了实际开发中的步骤。《Visual C++ 2010入门经典》旨在弥补这一空白,它不仅教授如何使用Visual Studio 2010进行项目创建、调试和配置,还介绍了C++的不同应用类型,如控制台程序、Windows程序和图形用户界面(GUI)程序。 书中将详细讲解如何利用Visual Studio 2010创建和管理项目,设置调试选项,理解项目属性配置,以及使用新的STL组件和C++10引入的语法特性。这对于初学者来说至关重要,因为这些实践技能是理解和掌握C++语言的关键。 作者强调,虽然本书不是专门的C++语言教程,但它是学习C++的补充,特别适合已经有一定C++基础并希望在Windows环境下实践编程的读者。为了更好地学习,作者推荐了其他经典C++教材,如《C++ Primer》、《C++程序设计语言》和《Visual C++2008入门经典》,这些书籍可以帮助读者系统地学习C++语言本身。 此外,作者提醒读者,学习编程的过程中可能会遇到挫折,但通过实践和不断的探索,可以逐步提升技能。书中提供的指导和示例将有助于初学者避免一些常见的陷阱,例如不了解如何使用调试器来追踪程序错误或查看调用堆栈。 《Microsoft Visual Studio C++ 2010入门经典》是一本面向C++初学者的实践指南,旨在帮助他们在Visual Studio 2010环境中建立起坚实的编程基础,理解C++与Visual C++之间的关系,并学会使用IDE进行高效开发。这本书将理论与实践相结合,是学习C++编程的宝贵资源。

#include "prepare_ogm.hpp" namespace senior { namespace guardian { namespace prepare { std::string PrepareOgm::Name() { return "Prepare Ogm Element"; } void PrepareOgm::Initiate() {} void PrepareOgm::Process(data::DataFrame& his, data::DataFrame& cur) { if (cur.source_ogm_points_.is_invalid()) return; if (cur.source_visual_ogm_points_.is_valid()) { cur.source_ogm_points_.insert(cur.source_ogm_points_.end(), cur.source_visual_ogm_points_.begin(), cur.source_visual_ogm_points_.end()); } if (cur.source_higher_ogm_points_.is_valid()) { cur.source_ogm_points_.insert(cur.source_ogm_points_.end(), cur.source_higher_ogm_points_.begin(), cur.source_higher_ogm_points_.end()); } auto& predict_path = cur.monitor_data_.mutable_predict_path(); predict_path.GenerateBoundary(cur); cur.AABox2d_ = predict_path.vehicle_AABox2d_; // if (!his.monitor_data_.is_need_to_take_over()) { // LOG(INFO)<<"1"; cur.AABox2d_.SetWidth(cur.AABox2d_.width() + 1.0); cur.AABox2d_.SetLength(cur.AABox2d_.length() + 1.0); // } std::vector<math::Vec2d> corner_points_; cur.AABox2d_.GetAllCorners(&corner_points_); auto& polygon2d = predict_path.tractor_polygon2d_; math::Vec2d temp; VoxelGrid filter_; common::Time now = common::Time::Now(); for (auto& point : cur.source_ogm_points_) { temp.set_x(point.x()); temp.set_y(-point.y()); if (cur.AABox2d_.IsPointIn(temp)) { cur.AABB_ogm_points_.emplace_back(point); } } cur.guardian_diagnose_["Prepare_PrepareOgm_AABox_filter"] = std::to_string((common::Time::Now() - now).ToSecond() * 1000); now = common::Time::Now(); filter_.VoxelGrid_ApplyFilter( cur.AABB_ogm_points_, cur.ogm_points_, corner_points_, 0.1, 0.1, 0); cur.guardian_diagnose_["Prepare_PrepareOgm_VoxelGrid_ApplyFilter"] = std::to_string((common::Time::Now() - now).ToSecond() * 1000); cur.ogm_points_.set_stamp(cur.source_ogm_points_.stamp()); cur.ogm_points_.set_time(cur.source_ogm_points_.time()); cur.ogm_points_.set_delay_time(cur.source_ogm_points_.delay_time()); cur.ogm_points_.set_valid(); } } // namespace prepare } // namespace guardian } // namespace senior 改变为C语言程序

2023-06-13 上传