1

我即将参加一些模式识别课程。由于我没有 C 或 C++ 方面的先验知识,我的教授告诉我在课程之前学习其中的一个,并在课程中学习更多。

我应该选择哪一个?

我在编程方面的先验知识主要限于 C#,但也有一些 PHP、SQL 和 Prolog。

4

5 回答 5

5

选择像 C 或 C++ 这样的低级语言可能意味着您以牺牲开发时间为代价来追求性能。

如果这是您的第一个低级语言,那么请学习 C。它是一种简单、健壮且经过验证的语言,它允许编写快速代码。它拥有数十年的便携性记录。将 C 代码与用其他语言编写的代码集成起来要容易得多。使用 C++ 很容易出错。C++ 需要更高程度的语言掌握和更多程序员的注意力才能使事情正确。虽然可以用 C++ 编写快速代码,但它比用 C 做同样的事情更像是一门艺术。

如果你只有几个月的时间来学习,那么最后你将能够写出一个OK的C代码,但这时间根本不足以获得足够的C++经验,因此你的C++代码是在第一年或两个会很糟糕。

例如,参见 Linus Torvalds 对 C++ 的严厉批评:C++ 是一种可怕的语言C++ 生产力。基本上,它归结为即使对于专业程序员来说 C++ 也过于复杂,并且 C++ 代码与上下文相关的行为模棱两可(这可能被认为是更高级别的语言特性,但它更难以推理性能)。

计算机视觉的主要开源库之一,OpenCV,可用于 C 和 C++,但它也可用于 Python,Python 是一种更容易快速完成任务的语言(也可以作为第一语言学习)。顺便说一句,我假设如果您设法将大部分工作卸载到库中,该库本身是用 C/C++ 编写的,Python 的性能成本不会很大(但通常 Python 比 C 慢 10 倍)。

于 2010-10-18T09:49:01.497 回答
4

Stroustrup(C++ 的发明者)认为C++ 比 C 更容易学习

手动捕获的类型错误将会减少 [...] 学习的技巧会减少 [...],并且可用的库会更好。

考虑到这一点,选择 C++。

于 2010-10-18T10:04:49.723 回答
3

C 和 C++ 在处理编程的方式上有着根本的不同。如果你有 C# 的经验,C++ 将是一个选择,因为它也是面向对象的。此外,即使它们不同,了解 C++ 也可以让您阅读(并且大部分理解)C 代码。另外,请查看此问题以获取有关这些语言之间差异的一些信息。

于 2010-10-18T08:48:18.823 回答
3

我建议学习 C++,因为如果您了解 C# 中的类等,这可能是最简单的。你也可以用 C++ 编写自由函数,但用 C 编写类更难。

于 2010-10-18T08:49:48.587 回答
1

您可能会使用的标准库是opencv.

C# 将帮助您掌握 C/C++。您可能能够看穿 opencv 代码示例并理解它们。

您可能会通过学习示例并熟悉它们而获得足够的 C。本课程的重点将放在算法上,而不是你的代码有多花哨。

听起来很有趣的课程!祝你好运。

于 2010-10-18T08:46:25.657 回答