vector操作小结
生活随笔
收集整理的這篇文章主要介紹了
vector操作小结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? 前面了解了一下vector,現在我們來看看vector的相關操作。
?
int main() {vector<int> v;//聲明并指出向量,空的vector,但可以向里面增加元素vector<int> v3(3,8);vector<int> v4{ 1, 2, 3, 4 };vector<int> v5 = {4,5,6};vector<int> v6(3);//只提供數量而略去初始值,int->0,string->空串vector<int>::iterator it;//push_back向vector對象中添加元素for (int i = 0; i != 10; i++)v.push_back(i);for (unsigned i = 0; i < v4.size(); i++)//v.size()返回值為無符號 cout << v4[i];//容器支持下標操作,打印1234cout << endl;//v.empty(),v.size(),v[n](返回引用),//vector支持>,<等比較if (v4 > v5)cout << "yes" << endl;elsecout << "no" << endl;//打印no。和比較字符串一樣,一個一個元素比較,而不是比較sizeif (!v4.empty())cout << v4[0] << ','<<v4.size() << endl;//打印1,4//不能用下標的形式添加元素,因為空的那部分根本不存在下標//assign(僅順序容器):用參數所指定的元素(拷貝)替換左邊容器中的所有元素,允許我們從一個不同但相容的類型賦值v.assign(v3.begin(),v3.end());cout << v[0];//打印8v.assign(4,5);//將4個5拷貝到v中for (unsigned i = 0; i < v.size(); i++)//v.size()返回值為無符號 cout << v[i];//5555cout << endl;//swap交換swap(v3,v4);//push_frnot從頭部插入一個元素,vector不支持 //insert向容器特定的位置插入0個或多個元素it=v4.insert(v4.begin(),0);//插入一個,其返回值為迭代器,恰好指向新的元素cout << *it << endl;//打印0v4.insert(v4.begin(),4,0);//插入多個//emplace_front,emplace,emplace_back表示頭部插入,插入,尾部插入。表示構造v4.emplace_back(5);cout << v4[4];//打印5//front()和back()成員函數,它們的返回值都是引用cout << v4.front() << endl;//0cout << v4.back() << endl;//5//pop_front和pop_back刪除第一個和最后一個元素//vector沒有pop_front成員v4.pop_back();//從尾部刪除一個元素//erase(p)刪除迭代器p指向的元素,返回一個指向被刪除元素后的迭代器it=v4.erase(v4.begin());cout << *it << endl;//打印2v4.erase(v4.begin(),v4.end());//刪除范圍內元素return 0; }上面都是單獨測試,每個測試互不干擾,每次vector的值都是初始值。
?
?
下面是整體測試,前面測試修改的vector,后面保留其值,并測試。
?
int main() {vector<int> v4{ 1, 2, 3, 4 };vector<int> v5 = {4,5,6};vector<int>::iterator it;//resize改變容器大小,用來增大或縮小容器。不夠按類型補齊,多了則會被刪除v4.resize(10);//將v4的大小改變為10,多的用0補齊v5.resize(2);//將v5的大小改變為2,多余的刪除,則v5為{4,5}//capacity是容器容量,size是容器中元素的數量cout << v4.capacity() << endl;//10cout << v4.size() << endl;//10,resize講擴大的部分初始化了//v.reserve(n)表示至少分配能容納n個元素的內存空間,多的內存不初始化v4.reserve(100);cout << v4.capacity() << endl;//100cout << v4.size() << endl;//10v5.reserve(20);cout << v5.capacity() << endl;//20v5.shrink_to_fit();//歸還多余內存cout << v5.capacity() << endl;//2return 0; }
參考資料:
?
C++ Primer
?
總結
以上是生活随笔為你收集整理的vector操作小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: string操作小汇总
- 下一篇: ssacnf和sprintf实战取ip地