从Python到C列表函数的转换
我用Python编写了上述函数,因为我更熟悉Python语言。它所做的是搜索一个10乘10的列表,如果一行用*填充,那么它将删除它并在顶部放置一个新的空行从Python到C列表函数的转换,python,c,list,function,Python,C,List,Function,我用Python编写了上述函数,因为我更熟悉Python语言。它所做的是搜索一个10乘10的列表,如果一行用*填充,那么它将删除它并在顶部放置一个新的空行 我知道c没有我使用的列表函数。有什么简单的方法可以解决我正在做的事情吗?在C语言中,不幸的是,这个问题会非常困难。需要为矩阵分配一个内存块。当您想“删除”一行时,您必须将所有内容向上移动,并释放矩阵底部的额外内存 如果你可以使用C++,这将更容易用STL容器完成。你可以有一个向量向量。删除一行将调用擦除: L = [[" " for i in
我知道c没有我使用的列表函数。有什么简单的方法可以解决我正在做的事情吗?在C语言中,不幸的是,这个问题会非常困难。需要为矩阵分配一个内存块。当您想“删除”一行时,您必须将所有内容向上移动,并释放矩阵底部的额外内存
如果你可以使用C++,这将更容易用STL容器完成。你可以有一个向量向量。删除一行将调用擦除:
L = [[" " for i in range(10)] for j in range(10)]
for i in range (10):
L[9][i]="*"
for i in range (10):
L[8][i]="1"
for i in range (10):
L[7][i]="*"
for i in range (10):
L[6][i]="3"
for i in range (10):
L[5][i]="*"
print(L)
print()
def Check_Lines(l):
for i in range (10):
x=l[i].count("*")
if x == 10:
print ("LINE IS FULL")
del l[i]
l.reverse()
l.append([" "," "," "," "," "," "," "," "," "," "])
l.reverse()
Check_Lines(L)
print (L)
你试过什么?C语言当然没有一种本地的方式来管理动态列表,您拥有的是数组,但要以动态方式使用它们,您需要使用指针。我不知道从哪里开始用C重写内置函数。我更多的是想让别人用你说的“指针”来回应,这样我就可以查一查,明白我需要做什么。我一点也不懂C语言,我正在努力学习。研究一下链表。您必须自行实施该列表,但这将是一次教育体验。:)
l.erase(pos) // pos is an iterator at the row you'd like to remove