reverse_iterator rbegin();
const_reverse_iterator rend() const;
reverse_iterator rend();
vector对象的比较(非成员函数)
针对vector对象的比较有六个比较运算符:operator==、operator!=、operator<、operator<=、operator>、operator>=。
其中,对于operator==和operator!=,如果vector对象拥有相同的元素个数,并且对应位置的元素全部相等,则两个vector对象相等;否则不等。
对于operator<、operator<=、operator>、operator>=,采用字典排序策略比较。
注:其实只需要实现operator==和operator!=就可以了,其它可以根据这两个实现。因为,operator!= (lhs, rhs) 就是!(lhs == rhs),operator<=(lhs, rhs) 就是!(rhs < lhs),operator>(lhs, rhs) 就是(rhs < lhs),operator>=(lhs, rhs) 就是!(lhs, rhs)。
vector类的迭代器
vector类的迭代器除了支持通用的前缀自增运算符外,还支持算术运算:it + n、it - n、it2 - it1。注意it2 - it1返回值为difference_type(signed类型)。
注意,任何改变容器大小的操作都可能造成以前的迭代器失效。
应用示例
#include
#include
#include
using namespace std;
int main()
{
vector
vector
assert(v == v2);
cout<<"> Before operation"< for(vector cout<<*it< v.insert(v.begin() + 3, 4, "hello, world"); cout<<"> After insert"< for(vector cout< vector assert(*it == "hello, world"); cout<<"> After erase"< for(vector cout< assert(v.begin() + v.size() == v.end()); assert(v.end() - v.size() == v.begin()); assert(v.begin() - v.end() == -vector return 0; } 程序说明:上面程序中用了三个循环输出容器中的元素,每个循环的遍历方式是不一样的。特别需要说明的是,第二个循环在条件判断中使用了size() 函数,而不是在循环之前先保存在变量中再使用。之所以这样做,有两个原因:其一,如果将来在修改程序时,在循环中修改了容器元素个数,这个循环仍然能很好地工作,而如果先保存size()函数值就不正确了;其二,由于这些小函数(其实现只需要一条返回语句)基本上都被声明为inline,所以不需要考虑效率问题。 --------------------------------- c++编程语言中有一种叫做Vector的应用方法,它的作用在实际编程中是非常重要的。在这里我们将会为大家详细介绍一下C++ Vector的相关应用技巧及基本内容,希望能给大家带来一些帮助。 (1)vector< 类型> 标识符; (2)vector< 类型> 标识符(最大容量) ; (3)vector< 类型> 标识符(最大容量,初始所有值); (4) int i[4] = {12,3,4,5}; vector< 类型> vi(i , i+2); //得到i索引值为3以后的值 ; (5)vector< vector vector< int > line // 在使用的时候一定要首先将vi个行进行初始化; for(int i = 0 ; i < 10 ; i ++) { vector.push_back(line); } /// 个人认为使用vector定义二维数组很好, 因为是长度可以不预先确定。很好。 (6)C++ Vector排序 vector< int > vi ; vi.push_back(1); vi.push_back(3); vi.push_back(0); sort(vi.begin() , vi.end()); /// /小到大 reverse(vi.begin(),vi.end()) /// 从大道小 (7)顺序访问 vector < int > vi ; for( int i = 0 ; i < 10 ; i ++) { vector.push_back(i); } for(int i = 0 ; i < 10 ; i ++) /// 第一种调用方法 { cout < } for(vector it !=vi.end() ; it++) ///第二种调用方法 { cout << *it << " " ; } (8)寻找 vector < int > vi ; for( int i = 0 ; i < 10 ; i ++) { vector.push_back(i); } vector < int >::interator it = find(vi.begin() , vi.end,3) ; cout << *it << endl ; ///返回容器内找到值的位置。 (9)使用数组对C++ Vector进行初始化 int i[10] ={1,2,3,4,5,6,7,78,8} ; ///第一种 vector for(vector it != vi.end() ; it++) { cout << *it <<" " ; } (10) 结构体类型 struct temp { public : string str ; public : int id ; }tmp int main() { vector temp w1 ; w1.str = "Hellowor" ; w1.id = 1 ; t.push_back(t1); cout << w1.str << "," < return 0 ; }