我试过这两个无法理解的区别
vector<int >a(n) and vector<int >a[n]
请有人解释。谢谢
答案 0 :(得分:4)
您的问题的简单答案是:
vector<int >a(n)
是一个vector<int>
个对象,初始大小为n
个元素。
vector<int >a[n]
是n
vector`对象的固定数组,每个对象的初始大小为0.
答案 1 :(得分:1)
你的问题根本没有提供任何背景,因此很难制定答案。
首先,矢量和数组之间存在差异。数组是用于相同类型元素的固定大小容器,向量是用于相同类型元素的可调整大小的容器。对于数组,您不需要STL(尽管STL中有数组实现)。
这些是你的选择:
def game_loop():
x = display_width * 0.45
y = display_height * 0.8
x_change = 0
accel_x = 0
y_change = 0
accel_y = 0
max_speed_x = 2.5
max_speed_y = 2.5
gameExit = False
while not gameExit:
for event in pygame.event.get():
if event.type == pygame.QUIT:
gameExit = True
elif event.type == pygame.KEYDOWN:
if event.key in (pygame.K_LEFT, pygame.K_a):
accel_x = -.2
img = pygame.image.load('PocketFlyer3.png')
img = pygame.transform.scale(img, (32, 32))
elif event.key in (pygame.K_RIGHT, pygame.K_d):
accel_x = .2
img = pygame.image.load('PocketFlyer2.png')
img = pygame.transform.scale(img, (32, 32))
if event.key in (pygame.K_UP, pygame.K_w):
accel_y = -.2
elif event.key in (pygame.K_DOWN, pygame.K_s):
accel_y = .2
elif event.type == pygame.KEYUP:
if event.key in (pygame.K_LEFT, pygame.K_RIGHT, pygame.K_a, pygame.K_d):
accel_x = 0
img = pygame.image.load('PocketFlyer1.png')
img = pygame.transform.scale(img, (32, 32))
if event.key in (pygame.K_UP, pygame.K_DOWN, pygame.K_w, pygame.K_s):
accel_y = 0
#accel script for X
x_change += accel_x
if abs(x_change) >= max_speed_x:
x_change = x_change/abs(x_change) * max_speed_x
if accel_x == 0:
x_change *= 0.92
x += x_change
#accel script for Y
y_change += accel_y
if abs(y_change) >= max_speed_y:
y_change = y_change/abs(y_change) * max_speed_y
if accel_y == 0:
y_change *= 0.92
y += y_change
display.fill(skyblue)
plane(x,y)
if x > display_width - plane_width or x < 0 or y > display_width - plane_width or y < 0:
gameExit = True
pygame.display.update()
clock.tick(60)
你的小代码示例显示的实际上是一组向量。
答案 2 :(得分:0)
我不能称自己是一位经验丰富的c ++用户,但我希望我的回答能有所帮助。主要有3种创建一维数组的方法
如果您使用第一种方式,您可以做很好的事情,例如&#34; vectorName.push_back(element)&#34;,所以它是动态 array.Basically你不需要决定你需要的元素的大小。
如果使用第二种方式,则创建一个数组,但在使用之前必须决定数组的最大大小。
如果你使用第三种方式,你正在创建一个指针,指向数组的第一个元素,你可以用 new 在堆上分配空间关键字,但您还需要决定它将占用多少空间。