std::vector
时间: 2023-07-14 18:55:24 浏览: 78
std::vector 是C++ STL(标准模板库)中的容器,可以动态地存储元素并自动扩展容量,可以方便地进行插入、删除和查找操作。它可以存储任意类型的数据,是一个非常常用的容器。可以通过 push_back() 方法向 vector 中添加元素,通过 size() 方法获取 vector 的大小,通过 operator[] 方法访问 vector 中的元素,等等。
相关问题
std::vector<std::string,std::vector<std::string>>
This code is not valid as the second template argument of std::vector should be a single type, not another vector.
To create a vector of vectors of strings, you could use:
std::vector<std::vector<std::string>> myVector;
std::vector::at 和 std::vector::operator[]
`std::vector::at()`和`std::vector::operator[]`都是用于访问C++标准库容器`std::vector`中的元素的方法,它们的主要区别在于错误处理和性能上:
1. `std::vector::at(size_type index)`:这个方法接收一个索引作为参数,并返回指定位置的元素。如果你提供的索引超出范围(即小于0或大于等于`size()`),会抛出`std::out_of_range`异常。因此,使用`at()`需要确保索引有效,否则可能导致程序崩溃。
2. `std::vector::operator[](size_type index)`:这是`std::vector`的一个隐式成员函数,也可以用方括号操作符[]来调用,它与`at()`类似,获取指定位置的元素。同样,如果索引无效,它会进行边界检查,但对于较大的向量,它比`at()`稍微快一些,因为不需要创建异常对象。
简而言之,`at()`提供了一种更安全但相对较慢的方式来访问元素,而`operator[]`虽然不太安全,但在常见情况下可能会更快。
阅读全文