C++ equivalent of Arraylist.get(index)



我一直想学习C++,然后开始我想看看我是否可以翻译我写的一些Java代码来解决一些欧拉项目问题(我前段时间学习了一门课程,所以我想看看我记得什么)。但后来我遇到了这个 java 代码:

while (x != 0) {
        if(x%10 != 0) {
            digits.add(x%10);
        }
        x /= 10;
    }

我翻译成:

std::vector<int> v;
while(x != 0){
    v.push_back(x%10);
    x /= 10;
}

在互联网的帮助下。现在的问题是,我如何从这个"列表"中获得一定的价值。在Java中,我可以做digits.get(index),在c++中如何做到这一点?

你使用 operator[](std::size_t) ,就像你使用普通数组一样:

int n = v[index];

请注意,这将不执行边界检查。如果需要边界检查访问,请使用at()成员函数:

int n = v.at(index);

后者为越界访问抛出std::out_of_range异常。

你也可以

使用 v.at(index);从vector中获取一个元素。

另请注意,v[index]没有范围检查,但v.at(index)会抛出超出范围的异常range_error

最新更新