也许这个问题相当愚蠢,但我不知道如何正确调用具有这种内存分配的析构函数:
Class_Name* arr[3];
arr[0] = new Class();
arr[1] = new Class(2);
arr[2] = new Class(3, 3);
像这样:
delete[] arr;
或者像这样:
for(int i=0; i<3; ++i)
delete arr[i];
还是以其他方式?
也许这个问题相当愚蠢,但我不知道如何正确调用具有这种内存分配的析构函数:
Class_Name* arr[3];
arr[0] = new Class();
arr[1] = new Class(2);
arr[2] = new Class(3, 3);
像这样:
delete[] arr;
或者像这样:
for(int i=0; i<3; ++i)
delete arr[i];
还是以其他方式?
是否有可能以某种方式使 C++
代码以某种方式类似于中的代码工作,这些代码python
称为生成器,“而不发明新的相对论”。
例如,斐波那契数列:
def fib():
f = 1
s = 0
while True:
yield s
f, s = s, s+f
k = fib()
for i in range(10):
print(next(k))
我试过这个,但我认为还有一些更“正确”的选择?
int fib(){
static int f=1, s=0;
int t=f;
f = s;
s += t;
return s;
}
int main(){
for(int i=0; i<10; ++i)
cout << fib() << ' ';
return 0;
}
至少,我的对手是“一次性”(你不能再次开始这个序列)。
是否可以替换此代码:
nums = []
for i in range(int(input())):
nums.extend(map(int, input().split()))
上list comprehension
?
以为可以这样做,
nums=[*map(int, input().split()) for i in range(int(input()))]
但是python说:
SyntaxError: iterable unpacking cannot be used in comprehension