C++ 如何基于for循环中I的值调用变量

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}

假设我有一个变量,叫做L0,L1,L2。。。。L9

我如何使它,使我可以调用和增量这些变量之一的基础上的整数“I”的值在这个for循环

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