我见过团队中的人写这样的代码.我个人认为这不可移植,因为矢量可以以完全不同的方式实现.我对吗?
vector<int> a;
a.push_back(1);
a.push_back(2);
a.push_back(3);
int* b = &a[0];
std::cout<< *(b +1); // this will print 2
Run Code Online (Sandbox Code Playgroud) 如果我逐个执行它们,以下Smalltalk代码将返回错误"context not not return".有人有解释吗?
f := [ :x :y | ^x + y].
sum:= f value: 3 value: 6.
Run Code Online (Sandbox Code Playgroud)
如果我一次执行它们,它会工作并按9预期返回.
我有一个集合c,我基本上想把这个集合分成两部分:前n个项目分成一个列表,其余部分分成另一个.显然,我可以使用do:,但是有更好的方法吗?
我想转换
l = [(1, 'a'), (2, 'b')]
Run Code Online (Sandbox Code Playgroud)
至
r = [1, 2]
p = ['a', 'b']
Run Code Online (Sandbox Code Playgroud)
显然,可以使用循环.是否可以使用lambda?任何其他方式
谢谢大卫
基本上我希望能够做这样的事情
std::vector<int> myInts(3);
myInts.push_back(1);
myInts.push_back(2);
myInts.push_back(3);
Run Code Online (Sandbox Code Playgroud)
从概念上讲,我希望向量myInts只有3个空格,其值为{1,2,3}
显然,如果在C++中运行上面的代码,结果将是{0,0,0,1,2,3}
C++的主要目标之一是效率,但在我看来,在第一行代码中,不需要为初始化向量赋值0.
你怎么看?是"可以实现具有指定数量的单位化空间的初始化"吗?