在C++中,vector是一个可变数组。那么怎么遍历它呢?我们以for循环为例(while循环,大家自己脑补)。
方法一:
基于范围的for循环,这是C++11新引入的。
std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (const auto element : v) {
std::cout << element << std::endl;
}
方法二:
使用迭代器。
std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (auto element = v.begin(); element != v.end(); ++element) {
std::cout << *element << std::endl;
}
v.begin()是第一个元素的指针,v.end()指向空(null)。++element是移动指针。
方法三:
这一种方式最传统,通过下标来遍历元素。
std::vector<int> v = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for (size_t i = 0; i < v.size(); ++i) {
std::cout << v[i] << std::endl;
}
在此也给出C语言中遍历数组的方法:
const int v[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
const int size = sizeof(v) / sizeof(v[0]);
for (int i = 0; i < size; i++) {
printf("v[%d] = %d\n", i, v[i]);
}