C ++相当于Arraylist.get(index)

时间:2015-04-26 09:23:07

标签: java c++ vector arraylist

我一直想学习C ++而感兴趣并开始我想看看我是否可以翻译我编写的一些java代码以解决一些项目的euler问题(我曾经学过一段课程,所以我想看看我记得的东西)。但后来我遇到了这个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 ++中做到这一点?

2 个答案:

答案 0 :(得分:3)

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

int n = v[index];

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

int n = v.at(index);

后者抛出std::out_of_range异常以进行越界访问。

答案 1 :(得分:2)

您也可以使用v.at(index);从vector中获取元素。

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