例子问题
例子问题1:实现技术
给定一个名为“intVec”的整型向量,编写一个“rangedfor”循环,有时也称为“for each”循环,将vector中所有元素的f值翻倍。(c++)
可能的答案:
for(int& i: intVec(){
I * 2;
}
for(int& i: intVec(){
I * = 2;
}
for(int i: intVec(){
I * = 2;
}
For (int I = 0;i < intVec.size();+ + i) {
intVec[i] *= 2;
}
For (int I = 0;i < intVec.size();+ + i) {
[i] * 2;
}
正确答案:
for(int& i: intVec(){
I * = 2;
}
解释:
c++ 11引入了“for each”循环,允许用户在不编写传统循环的情况下对容器中的项进行循环。让我们来看看所有的选项。
for(int i: intVec(){
I * = 2;
}
虽然这看起来像正确答案,但它不是。for循环第一部分中的int i是“按值”传入的,这意味着将生成intVec的副本,副本中的整数将翻倍。原始intVec向量中的整数将不受影响。为了解决这个问题,需要将int i通过引用传递到for循环中,这是通过在“int”后面添加“&”符号来完成的。
正确的循环是:
for(int& i: intVec(){
I * = 2;
}
让我们来看看其他的选择:
for(int& i: intVec(){
I = 2;
}
这个将不起作用,因为它将intVec中的所有项设置为2,而不是将它们加倍。
所有其他for循环都不是“for each”循环,因此即使它们完成了相同的输出,它们也是不正确的。
顶尖城市的计算机科学辅导:
亚特兰大计算机科学辅导,奥斯汀计算机科学辅导,波士顿计算机科学辅导,芝加哥计算机科学辅导,达拉斯沃斯堡计算机科学辅导,丹佛计算机科学辅导,休斯顿计算机科学辅导,堪萨斯市计算机科学辅导,洛杉矶计算机科学辅导,迈阿密计算机科学辅导,纽约市计算机科学辅导,费城计算机科学辅导,凤凰计算机辅导,圣地亚哥计算机科学辅导,旧金山湾区计算机科学辅导,西雅图计算机科学辅导,圣路易斯计算机科学辅导,图森计算机科学辅导,华盛顿特区计算机科学辅导
顶尖城市的计算机科学导师:
亚特兰大计算机科学导师,奥斯汀计算机科学导师,波士顿计算机科学导师,芝加哥计算机科学导师,达拉斯沃斯堡计算机科学导师,丹佛计算机科学导师,休斯顿计算机科学导师,堪萨斯城计算机科学导师,洛杉矶计算机科学导师,迈阿密计算机科学导师,纽约市计算机科学导师,费城计算机科学导师,凤凰计算机科学导师,圣地亚哥计算机科学导师,旧金山湾区计算机科学导师,西雅图计算机科学导师,圣路易斯计算机科学导师,图森计算机科学导师,华盛顿特区计算机科学导师