我想给
std::vector
一个不同的名字,比如MyVector
,所以我遵循了typedef
typedef std::vector<float> MyVector<float>;
然而,Visual Studio 抱怨
MyVector
“MyVector 不是模板”
如何分配另一个名称
std::vector
?
我的代码中可能有
MyVector
,本质上是 std::vector
,所以我只想将 std::vector
与 MyVector
相等,这样我就不必将所有 MyVector
更改为 std::vector
。
你想要的是一个别名模板,像这样:
template <typename T>
using MyVector = std::vector<T>;
这将允许您像这样使用它:
MyVector<float> vec = stuff;
其中
vec
将是 std::vector<float>
。
import cv2
click_count = 0
xy = []
def mouse_callback(event, x, y, flags, param):
global click_count, xy
if event == cv2.EVENT_LBUTTONDOWN:
click_count += 1
print("Point", click_count, ": (", x, y, ")")
cv2.circle(img, (x, y), 3, (0, 0, 255), -1)
xy.append([x,y])
def manual_select_pts(img, num_pts):
# Create a window
cv2.namedWindow("Image")
# Set the mouse callback
cv2.setMouseCallback("Image", mouse_callback)
num_pts = 3
# Display the image
while click_count < num_pts:
cv2.imshow("Image", img)
key = cv2.waitKey(1) & 0xFF
if key == ord('q'):
break
cv2.destroyAllWindows()
return xy,
if __name__ == "__main__":
# Load an image or create a blank one
img = cv2.imread("bot.png")
xy_pts = manual_select_pts(img, 3)
print(xy_pts)