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 }
欢迎讨论,相互学习。
cdtxw@foxmail.com