C ++模板化quickSort无法使用迭代器,错误C2061

时间:2015-10-28 20:22:37

标签: c++ compiler-errors iterator quicksort

我正在为使用迭代器的各种容器编写一个模板化的快速排序算法版本,但是当我尝试构造一个Object :: iterator时,以下错误让我们知道了。

  • 错误C2061:语法错误:标识符'iterator'

  • 错误C2780:'void myQuickSort(Container&)':需要1个参数 - 3 (我相信这个错误是错误C2061的结果)

如何在没有编译器给我这些错误的情况下为我的模板化类Container创建一个迭代器。

我的代码如下:

return a;

1 个答案:

答案 0 :(得分:0)

众所周知的问题。它是重复的,但我输入答案比查找重复的问题更容易。替换

original_img = cv2.imread('mars_sample_image.jpg', 0)
edges = cv2.Canny(edited_img, 100, 200)
ret, thresh = cv2.threshold(edges, 127, 255, 0)
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_CCOMP, cv2.CHAIN_APPROX_NONE)

enclosed_contours = []
other_contours = []
for i in range(len(contours)):
    if hierarchy[0][i][0] < 0:
        enclosed_contours.append(contours[i])
    else:
        other_contours.append(contours[i])
contours = [contour for contour in enclosed_contours if cv2.contourArea(contour) > 100]

void myQuickSort(Container& c, Container::iterator begin, Container::iterator end)

另外,快速排序功能的设计不正确。如果您在迭代器方面表达函数,请不要请求将容器传递给函数。