日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

容器的访问元素的成员函数(front,back,下标和at)返回的都是引用,如果顺序容器是const的对象,那么返回的是const的引用

發(fā)布時間:2024/4/18 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 容器的访问元素的成员函数(front,back,下标和at)返回的都是引用,如果顺序容器是const的对象,那么返回的是const的引用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

順序容器的訪問元素的成員函數(front,back,下標和at)返回的都是引用,如果順序容器是const的對象,那么返回的是const的引用,下面有個例子說明問題:

#include <iostream> #include <string> #include <vector> #include <deque> #include <list> #include <forward_list> #include <string> #include <array> using namespace std; #define LENGTH 10 typedef int TYPE; typedef vector<TYPE> VECTORTYPE; typedef deque<TYPE> DEQUETYPE; typedef list<TYPE> LISTTYPE; typedef forward_list<TYPE> FORWARD_LISTTYPE; typedef array<TYPE,LENGTH> ARRAYTYPE; void print(VECTORTYPE & ); void print(DEQUETYPE & ); void print(LISTTYPE & ); void print(FORWARD_LISTTYPE & ); void print(ARRAYTYPE & ); void print(string &); void pluralize(size_t ,string &); void print(list<string> &); void print(vector<string> &); int main() {const vector<int> v_int{1,2,3,4,5,6,7,8,9};//這里v_int是const的vectorint & a = v_int[1]; //這里是錯誤的。不能把const引用賦值給普通引用deque<int> d_int{1,2,3,4,5};list<int> l_int{1,2,3,4,5};forward_list<int> f_int{1,2,3,4,5};array<int,10> a_int{1,2,3,4,5,6};string str{"abcdefg"};cout << "v_int is:"<< v_int.front() << endl;cout << "v_int.front is:" ;cout << v_int.front() << endl; cout << v_int.back() << endl;cout << d_int.front() << endl; cout << d_int.back() << endl;cout << l_int.front() << endl; cout << l_int.back() << endl;cout << f_int.front() << endl; cout << a_int.front() << endl; cout << a_int.back() << endl;cout << str.front() << endl; cout << str.back() << endl;d_int.at(1) = 1025;cout << v_int[1] << endl;cout << d_int[1] << endl;cout << a_int[1] << endl;cout << str[1] << endl;cout << "at function :" << endl;cout << v_int.at(0) << endl;cout << d_int.at(1) << endl;cout << a_int.at(1) << endl;cout << str.at(1) << endl; return 0; } void print(VECTORTYPE &vec) {for(VECTORTYPE::iterator i = vec.begin() ; i != vec.end() ; ++i){ cout << *i << " ";}cout << endl;return ; }void print(DEQUETYPE &vec) {for(DEQUETYPE::iterator i = vec.begin() ; i != vec.end() ; ++i){ cout << *i << " ";}cout << endl;return ; }void print(LISTTYPE &vec) {for(LISTTYPE::iterator i = vec.begin() ; i != vec.end() ; ++i){ cout << *i << " ";}cout << endl;return ; }void print(FORWARD_LISTTYPE &vec) {for(FORWARD_LISTTYPE::iterator i = vec.begin() ; i != vec.end() ; ++i){ cout << *i << " ";}cout << endl;return ; }void print(ARRAYTYPE &vec) {for(ARRAYTYPE::iterator i = vec.begin() ; i != vec.end() ; ++i){ cout << *i << " ";}cout << endl;return ; }void print(string & s_vec) {for(string::iterator i = s_vec.begin(); i != s_vec.end() ; ++i) {cout << *i << " ";}cout << endl; } void pluralize(size_t cnt,string &word) {if(cnt > 1)word.push_back('s');//equal to word += 's' }void print(vector<string> & s_vec) {for(auto &i :s_vec)cout << i << " ";cout << endl; } void print(list<string> & s_list) {for(auto & i: s_list)cout << i << " ";cout << endl; }

v_int是const對象,所以v_int[1]也是const引用的。所以不能賦值給普通的引用。

總結

以上是生活随笔為你收集整理的容器的访问元素的成员函数(front,back,下标和at)返回的都是引用,如果顺序容器是const的对象,那么返回的是const的引用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。