C与C++的方式

amc*_*amc 3 c c++ image data-structures

因此,我必须编写一个程序,该程序将遍历图像并记录与其中出现的每个颜色像素相对应的像素位置.例如,给定

http://www.socuteurl.com/fishywishykissy

我需要找到所有黄色,紫色,深粉色等像素的坐标.

在C++中,我会使用哈希表来执行此操作.我将迭代图像,检查每个像素的值,查找该值,如果找到它,则添加到像素坐标向量,如果值尚未存在,则向表中添加新条目.

问题是我可能需要用纯C而不是C++编写这个程序.我怎么会在C中这样做呢?我觉得实现一个哈希表会非常讨厌和容易出错:我应该避免这样做吗?

如果这很重要的话,我对C很缺乏经验并且拥有相当数量的C++经验.

谢谢.

小智 6

没有你可以在C++中实现的算法/数据结构,你无法在C中实现.有时它在C++中可以说更优雅,但在C语言中永远不可能.

以下是一些C哈希表实现:http://www.google.ca/search? q = hash + table + c

您可能也对C与C++链接中的OOP感兴趣:http://www.eventhelix.com/realtimemantra/basics/object_oriented_programming_in_c.htm

通常,在C++中使用类的地方,可以在C中使用结构+函数.

  • 图灵机可以做任何事情C++也可以做 - 不是我主张尝试它. (2认同)

Mar*_*som 6

这是一种使用一些额外内存的替代算法,但易于实现.

浏览图像,对于每个像素,将其与其坐标一起添加到新数组中.在像素值为(R,G,B)的情况下,将值(R,G,B,X,Y)放入新阵列中.

使用qsort对新数组进行排序.现在,所有相同颜色的像素将组合在一起.