ca12a_c++顺序容器的操作5_访问容器中的数据元素

ca12a_c++顺序容器的操作5_访问容器中的数据元素
访问元素:
c.back()、、显示最后一个数据
c.front() 、、显示第一个数据
c[n],n就是下标,适合vector与deque
c.at(n),n就是下标,适合vector与deque

顺序容器:
vector,
deque
list
txwtech

 

 1 /*ca12a_c++顺序容器的的操作5_访问容器中的数据元素
 2 访问元素:
 3 c.back()、、显示最后一个数据
 4 c.front() 、、显示第一个数据
 5 c[n],n就是下标,适合vector与deque
 6 c.at(n),n就是下标,适合vector与deque
 7 
 8 顺序容器:
 9 vector,
10 deque
11 list
12 txwtech
13 
14 
15 */
16 #include <iostream>
17 #include <list>
18 #include <vector>
19 #include <deque>
20 
21 using namespace std;
22 
23 int main()
24 {
25     vector<int> ivec;
26     ivec.push_back(10);
27     ivec.push_back(20);
28     ivec.push_back(30);
29 
30     if (!ivec.empty())//先判断是否为空,再使用front,back
31     {
32         cout << ivec.front() << endl;//显示第一个数据
33         cout << ivec.back() << endl;//显示最后一个数据
34     }
35 
36     vector<int>::reference a = ivec.front();//front返回一个引用,所以使用reference
37     vector<int>::reference b = ivec.back();
38     cout << a << endl;
39     cout << b << endl;
40     cout << *ivec.begin() << endl;//通过指针返回
41     vector<int>::reference c = *ivec.begin();//*迭代器返回的是一个引用
42     cout << c << endl;
43     cout << "使用 *--ivec.end()方法:" << endl;
44     cout << *--ivec.end() << endl;//也是显示最后一个数据
45 
46     cout <<"使用下标显示数据: "<< ivec[0] << endl;//使用下标显示数据
47     cout << ivec[1] << endl;
48     //cout << ivec[300] << endl;//[]下标越界,不抛出异常
49     //cout << ivec.at(300) << endl;//下标越界,at符号可以抛出异常
50     //可以抛出异常,就可以catch异常
51     try
52     {
53         cout << ivec.at(300)<< endl;
54     }
55     catch (out_of_range)
56     {
57         cout << "下标越界咯" << endl;
58     }
59 
60 
61     cout << "使用ivec.at方法:" << endl;
62     cout << ivec.at(0) << endl;//下标越界,at符号可以抛出异常
63     cout << ivec.at(1) << endl;
64 
65 
66     return 0;
67 }

 

posted @ 2020-02-15 18:18  txwtech  阅读(185)  评论(0编辑  收藏  举报