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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java中vector容器,vector向量容器(常用的使用方法总结)

發布時間:2023/12/2 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中vector容器,vector向量容器(常用的使用方法总结) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于STL中vector容器的學習,編譯運行后邊看代碼,邊看執行結果效果更佳,還是想說看別人的代碼一百遍,不如自己動手寫一遍。

vector向量容器不但能像數組一樣對元素進行隨機訪問,還能隨時在尾部插入元素,簡單而高效,能夠完全替代數組。

vector最大的亮點在于具有內存自動管理的功能,插入和刪除元素時能夠動態調整所占的內存空間。

值得注意的是,vector容器中的兩個重要方法,begin()返回的是首元素位置的迭代器,end()返回的是最后一個元素的下一個元素位置的迭代器。

//關于STL中vector容器的學習,編譯運行后邊看代碼,邊看執行結果效果更佳,不過看別人的代碼一百遍,不如自己動手寫一遍

#include //頭文件

#include

#include

using namespace std;

void print(vector v);

bool mycmpare(const int &a, const int &b){

return a>b;

}

int main ()

{

//創建vector對象三種常用的方式,此處存儲元素類型是int,還可以是double、char、long long等基本數據類型,甚至是string基本字符序列容器

vector v1;//不指定容器的元素個數的定義一個用來存儲整型的向量容器

cout<

print(v1);

/*運行結果

v1:

大小為:0

*/

vector v2();//指定容器的元素個數的定義一個大小為10的用來存儲整型的向量容器,默認初始化為0

cout<

print(v2);

/*運行結果

v2:

大小為:5

0 0 0 0 0

*/

vector v3(,);//也可指定初始值,此處指定為1

cout<

print(v3);

/*運行結果

v3:

大小為:5

1 1 1 1 1

*/

//另外事先指定不指定大小都無所謂,指定了大小也可以隨時使用push_back()對vector容器進行尾部擴張

v1.push_back();//向空的vector容器尾部擴張,追加元素為1

cout<

print(v1);

v3.push_back();//向已有元素的vector容器尾部擴張,追加元素為2

cout<

print(v3);

/*運行結果

v1:

大小為:1

1

v3:

大小為:6

1 1 1 1 1 2

*/

//插入元素使用insert()方法,要求插入的位置是迭代器的位置,而不是元素的下標

v3.insert(v3.begin(),);//在最前面插入3

cout<

print(v3);

v3.insert(v3.end(),);//在末尾追加3,此處等同于push_back()

cout<

print(v3);

/*運行結果

v3:

大小為:7

3 1 1 1 1 1 2

v3:

大小為:8

3 1 1 1 1 1 2 3

*/

int i;

for(i=;i < v3.size();i++){//只可賦值到已擴張位置

v3[i]=i;

}

//要刪除一個元素或者一個區間中的所有元素時使用erase()方法

v3.erase(v3.begin()+);//刪除第2個元素,從0開始計數

cout<

print(v3);

/*運行結果

v3:

大小為:7

0 1 3 4 5 6 7

*/

v3.erase(v3.begin()+,v3.begin()+);//刪除第1個到第3個元素區間的所有元素

cout<

print(v3);

/*運行結果

v3:

大小為:5

0 4 5 6 7

*/

//由結果可知,erase()方法同insert()方法一樣,操作的位置都只是迭代器的位置,而不是元素的下標

//要想清空vector(),使用clear()方法一次性刪除vector中的所有元素

cout<

print(v2);

/*運行結果

v2:

大小為:5

0 0 0 0 0

*/

v2.clear();

if(v2.empty()) cout<

print(v2);

/*運行結果

v2經過使用clear()方法后為空

大小為:0

*/

//要想將向量中某段迭代器區間元素反向排列,則使用reverse()反向排列算法,需要添加algorithm頭文件

cout<

print(v3);

reverse(v3.begin(),v3.end());//全部反向排列

cout<

print(v3);

/*運行結果

v3反向排列前:

大小為:5

0 4 5 6 7

v3反向排列后:

大小為:5

7 6 5 4 0

*/

//要想將向量中某段迭代器區間元素進行排序,則使用sort()算法

cout<

print(v3);

sort(v3.begin(),v3.end());//默認升序排列

cout<

print(v3);

/*運行結果

v3升序排列前:

大小為:5

7 6 5 4 0

v3升序排列后:

大小為:5

0 4 5 6 7

*/

//自定義排序比較函數,此處降序

cout<

print(v3);

sort(v3.begin(),v3.end(),mycmpare);

cout<

print(v3);

/*運行結果

v3降序排列前:

大小為:5

0 4 5 6 7

v3降序排列后:

大小為:5

7 6 5 4 0

*/

}

void print(vector v)

{

//cout<

cout<

int i;

for(i=;i< v.size();i++){

cout<

}

cout<

/*cout<

//定義迭代器變量it,類型與容器元素類型保持一致

vector::iterator it;

for(it=v.begin(); it != v.end(); it++){

cout<

}

cout<

}

學習筆記之vector向量容器

今天復習到vector向量容器,里面包括vector向量容器的一些優點以及具體的使用方法及代碼,分享給大家. Vector向量容器不但能夠像數組一樣對元素進行隨機訪問,還可以在尾部插入元素,是一種簡單 ...

vector向量容器

vector向量容器不但可以像數組一樣對元素進行隨機訪問,還能在尾部插入元素,是一種簡單高效的容器,可以代替數組. vector具有內存自動管理的功能,對于元素的插入和刪除,可以動態的調整所占內存. ...

標準模板庫使用參考——vector向量容器

C++的STL從廣義上講分為algorithm(算法),container(容器)和iterator(迭代器)三類,包含了諸多在計算機科學領域里所常用的基本數據結構和基本算法. 在C++標準庫中,ST ...

C&plus;&plus;STL之vector向量容器

vector向量容器 ? vector向量容器不但能向數組一樣對元素進行隨機訪問,?還能在尾部插入元素 vector具有內存自動管理的功能,?對于元素的插入和刪除,?可動態調整所占的內存空間 vect ...

vector向量容器元素排序與查找

1.利用標準庫函數sort()對vector進行排序 參考源碼: #include #include vector

vector 向量容器用法祥解

vector(向量): C++中的一種數據結構,確切的說是一個類.它相當于一個動態的數組,當程序員無法知道自己需要的數組的規模多大時,用其來解決問題可以達到最大節約空間的目的. 用法:???????? ...

利用copy函數簡單快速輸出&sol;保存vector向量容器中的數據

如果要輸出vector中的數據我們可以通過循環語句輸出,更加簡便的方法是利用copy函數直接輸出,例子: #include "stdafx.h" #include

C&plus;&plus; STL vector&lpar;向量容器&rpar;的使用(附完整程序代碼)

一.簡單介紹 Vectors 包括著一系列連續存儲的元素,其行為和數組類似. 訪問Vector中的隨意元素或從末尾加入元素都能夠在O(1)內完畢,而查找特定值的元素所處的位置或是在Vector中插入元 ...

1&period;Vector&lpar;向量容器&rpar;

一.概述 Vectors 包含著一系列連續存儲的元素,其行為和數組類似.訪問Vector中的任意元素或從末尾添加元素都可以在常量級時間復雜度內完成,而查找特定值的元素所處的位置或是在Vector中插入 ...

隨機推薦

Log4j配置詳解&lpar;轉&rpar;

一.Log4j簡介 Log4j有三個主要的組件:Loggers(記錄器),Appenders (輸出源)和Layouts(布局).這里可簡單理解為日志類別,日志要輸出的地方和日志以何種形式輸出.綜合使 ...

從零開始學 Java - CentOS 安裝 JDK

我來總結一下吧 昨天我寫了一篇從零開始學 Java - 我放棄了 .NET ?,在園子里突然引起了強烈的討論,有期待我能持續更新的.有鼓勵支持的.有相同經歷的.也有同一個學校的師兄弟(我們相認了).當 ...

Leetcode Permutations

Given a collection of numbers, return all possible permutations. For example,[1,2,3]?have the follow ...

HDU 3951 &lpar;博弈&rpar; Coin Game

先考慮兩種簡單的情況: 如果先手能一次把硬幣拿完,即 k >= n ,那么先手勝 如果每次只能拿一個硬幣, 即 k = 1 ,那么如果有奇數個硬幣先手勝,如果有偶數個硬幣后手勝. 剩下的情況就是 ...

學習動態性能表 v&dollar;sql

學習動態性能表?第三篇-(1)-v$sql V$SQL中存儲具體的SQL語句. 一條語句可以映射多個cursor,因為對象所指的cursor可以有不同用戶(如例1).如果有多個cursor(子游標)存 ...

Android開源項目發現--- 工具類數據庫ORM篇(持續更新)

orm的db工具類,簡化建表.查詢.更新.插入.事務.索引的操作 1. greenDAO Android Sqlite orm的db工具類 項目地址:https://github.com/greenr ...

bootstrap 更改container 的width

參考:http://stackoverflow.com/questions/15884102/bootstrap-how-do-i-change-the-width-of-the-container ...

非交互式一句話添加root用戶

useradd -p `openssl passwd -1 -salt ‘lsof’ admin123` -u 0 -o -g root -G root -s /bin/bash -d /usr/bi ...

Geany的&quot&semi;跳轉到標記定義&OpenCurlyDoubleQuote;功能如何使用

Geany是個比較輕量級的代碼編輯器,在一些不怎么需要編輯的代碼上,我比較常用它來瀏覽代碼.不過它的 跳轉到標記定義(Go to tag definition) 功能有點奇怪,一開始死活不知道怎么用, ...

總結

以上是生活随笔為你收集整理的java中vector容器,vector向量容器(常用的使用方法总结)的全部內容,希望文章能夠幫你解決所遇到的問題。

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