C++ 如何基于for循环中I的值调用变量
假设我有一个变量,叫做L0,L1,L2。。。。L9 我如何使它,使我可以调用和增量这些变量之一的基础上的整数“I”的值在这个for循环C++ 如何基于for循环中I的值调用变量,c++,for-loop,increment,C++,For Loop,Increment,假设我有一个变量,叫做L0,L1,L2。。。。L9 我如何使它,使我可以调用和增量这些变量之一的基础上的整数“I”的值在这个for循环 for(int i = 0; i < 10; i++) for(int i=0;i++L1,等等) } 我不确定是否有任何方法可以完成您在这里特别想要做的事情,但您可以使用std::map来实现类似的功能 #包括 #包括 #包括 int main(int argc,char*argv[]){ 标准::映射LVAR={ {“L0”,5}, {“L1”,2}
for(int i = 0; i < 10; i++)
for(int i=0;i<10;i++)
我的想法是使用if语句或switch,但是如果我多次调用它,会极大地影响时间复杂度
我试着在下面举一个简单的例子来说明我要做的事情:
for(int i = 0; i < 10; i++){
++(L+i) // (if i = 0 -> ++L0, if i = 1 -> ++L1, etc)
}
for(int i=0;i<10;i++){
++(L+i)/(如果i=0->++L0,如果i=1->++L1,等等)
}
我不确定是否有任何方法可以完成您在这里特别想要做的事情,但您可以使用std::map来实现类似的功能
#包括
#包括
#包括
int main(int argc,char*argv[]){
标准::映射LVAR={
{“L0”,5},
{“L1”,2},
};
对于(int i=0;i<2;++i){
++Lvars[“L”+std::to_字符串(i)];
}
}
另一个类似的方法,使用指针
int main(int argc,char*argv[]){
int*L=新的int[10]();
对于(int i=0;i<10;++i){
++*(L+i);
}
删除[]L;
}
如果您知道编译时的大小,可以使用数组:
#include <array>
#include <iostream>
int main() {
std::array L{1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
for (auto &el : L) {
++el;
}
for (auto &el : L) {
std::cout << el << ' ';
}
}
否则,可以使用向量:
#include <iostream>
#include <vector>
int main() {
std::vector L{1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
L.emplace_back(20);
L.emplace_back(30);
for (auto &el : L) {
++el;
}
for (auto &el : L) {
std::cout << el << ' ';
}
}
您应该阅读关于std::vector。。。或者std::array
如果变量的数量是固定的。在页面底部,您可以看到示例代码:,您是否可以解释“如果我多次调用它,它将极大地影响时间复杂度”?这对我来说没有意义。L[i]
是*(L+i)
的语法糖<代码>++L[i]
通常比+*(L+i)
更具可读性。
#include <iostream>
#include <vector>
int main() {
std::vector L{1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
L.emplace_back(20);
L.emplace_back(30);
for (auto &el : L) {
++el;
}
for (auto &el : L) {
std::cout << el << ' ';
}
}
2 3 4 5 6 7 8 9 10 1 21 31