C++標準庫與Java基礎類對照表
C++ | Java | |
定義 | vector<int> vTest(50) | ArrayList vTest = new ArrayList() |
追加 | int x = 5; vTest.push_back( x ) | Integer x = new Interger(5) vTest.add( x ) |
元素個數 | vTest.size() | vTest.size() |
判斷空 | vTest.empty() // TRUE為空 | vTest.isEmpty() |
插入 |
vector<int>::iterator iter;
int y = 15; |
int y = 15; vTest.add( 5, y) |
刪除 | vTest.erase( vTest.begin() ) | vTest.remove(5) |
迭代 | vector<int>::iterator iter; iter = vTest.begin(); int xx = 0; while( iter != vTest.end() ) { xx = *iter; iter++; } |
iterator it = vTest.iterator(); //取得第一個 |
獲取 | vTest[i] 或 vTest.at(i) | 讀取 vTest.get(i) 寫入 vTest.set(i, new Integer(15)); |
清空 | vTest.clear() | vTest.clear() |
C++ | Java | |
定義 | map<string, int> mapTest | HashMap mapTest = new HashMap() |
插入 | mapTest[ string(“hello”) ] = 1; 或者 typedef map<string,int>::value_type valType; string str = “hello”; mapTest.insert(valType(str, 1)); | mapTest.put(“hello”, new Integer(1) ); |
查詢 | mapTest.count(“hello”) 判斷個數 map<string,int>::iterator it; it = mapTest.find(“hello”); int x = (*it).second; | 判斷存在: mapTest.containsKey() 獲取 Integer x = (Integer)mapTest.get(“hello”) |
C++ | Java | |
定義 | vector<string> vec; //假設已插入資料 vector<string>::iterator it; | ArrayList vec = new ArrayList(); //假設已插入資料 Iterator it = vec.iterator(); |
排序 | sort(vec.begin(), vec.end()) | Collections.sort(vec); |
查詢 | find(vec.begin(), vec.end(), “hello”) | 二分查詢: int pos = Collections.binarySearch(vec, “hello”); |
複製 | int ia[] = {1,2,3,4,5} vector<int> vec; copy(ia, ia+5, back_inserter(vec)); |
C++ | Java | |
定義 | string str = “cpp string”; string str(“hello”); 轉換為C風格字串 str.c_str(); | String str = “java string” |
追加 | str = str + “world”; str.append(“world”); | str = “hello” + “world”; str.concat(“world”); |
長度 | str.length() | str.length(); |
比較 | str.compare(otherstr); 判斷相等 str == otherstr | str.CompareTo(otherstr); 判斷相等: str.equals(otherstr); 正則表示式匹配 str.matches(“^#(.)+$”); |
子串 | str.substr(5,6) //第5個字元,長度6 | str.substring(5,8) //第5到第8個字元 分割: String str = “CHN,JPN,RUS”; String vecstr[]; vecstr = str.split(“,”); 結果為String陣列 “CHN”, “JPN”, “RUS” |
查詢 | int idx = str.find(“cpp”); if( idx != string::npos ) { ... ... //找到位置 } 查詢第一個出現0~9字元的位置 int idx = find_first_of(str, “1234567890”); | int idx = str.indexOf(“cpp”); if( idx != -1) { .. ... } |
清空 | str.clear() | str.clear() |
相關推薦
C++標準庫與Java基礎類對照表
一、集合類 物件的集合,指如連結串列,陣列,佇列這一類的資料結構。在C++標準庫中把這些成為Container, 在Java中稱為Collection。 C++STL常用Container: vector, list, map, set, queue, stack
c/c++ 標準庫 set 自定義關鍵字類型與比較函數
尖括號 ios template end 傳遞函數 使用 out 例子 比較 標準庫 set 自定義關鍵字類型與比較函數 問題:哪些類型可以作為標準庫set的關鍵字類型呢??? 答案: 1,任意類型,但是需要額外提供能夠比較這種類型的比較函數。 2,這種類型實現了 &l
java 基礎類庫之 SQLFun
cnblogs import bsp 轉換 span pre param ack urn package com.exjor.webdemo; import java.sql.Timestamp; import java.util.Date; public
java 基礎類庫之 FormatFun
final mat web port efault div break orm log package com.exjor.webdemo; import java.text.SimpleDateFormat; import java.util.Date;
java核心學習(九) java基礎類庫之Scanner
system.in 網站 文檔 數據源 java程序 官方網站 基本功 簡單 方法 從第九節開始,對java的基礎類庫進行初步學習,這些基礎類其中的一些內容是java程序員的基本功 言歸正傳,開始學習。對於java類庫的具體使用方法,可以在IDE裏面查看源碼和註釋,也可以在
C++標準庫vector類型的使用和操作總結
種類 style 開始 spa log string string類 gpo targe vector是一種類型對象的集合,它是一種順序容器,容器中的所有對象必須都是同一種類型。vector的對象是可以動態生長的,這說明它在初始化時可以不用指定大小,而是再使用時根據元素
Java基礎-類加載機制與自定義類Java類加載器(ClassLoader)
定義類 方式 blog 之前 www 筆記 通過 反射 加載機制 Java基礎-類加載機制與自定義類Java類加載器(ClassLoader) 作者:尹正傑 版權聲明:原創作品,謝絕轉
java基礎類庫學習(四.2)異常處理的陷阱
前言 java的異常類Exception繼承自非正常情況類Throwable,異常類下又分為兩大類:checked異常和runtime異常, 其中發生checked異常的類如果不做處理程式會發生編譯錯誤,導致程式中斷編譯 而runtime異常的類只有在執行階段才會發生,如果不做處理,
java基礎類庫學習(二.3)List子介面的實現類
List子介面的實現類:ArrayList/Vector/LinkedList List集合:元素有序。可重複的集合,List集合預設按元素的新增順序設定元素的索引,通過索引來訪問物件 List集合原始碼? public interface List<E> extends
java基礎類庫學習(二.2)Set子介面的實現類
Set子介面的實現類:HashSet/LinkedHashSet/TreeSet/EnumSet/SortedSet Set子介面和Collection父介面原始碼對比? 1Collection父介面原始碼 public interface Collection&l
java基礎類庫學習(七.3)控制執行緒
前言 執行緒的五個狀態新建/就緒/執行/阻塞/死亡 為了很好的控制執行緒的狀態(新建態,就緒態--執行態控制不了),我們來看一下執行緒物件的幾個方法,也就是Thread的幾個方法 控制執行緒的狀態 1使執行緒處於新建態 執行緒子類 a=new 執行緒子類();  
java基礎類庫學習(七.2)執行緒的生命週期
前言 利用java的類/介面建立好使用者執行緒後,我們呼叫執行緒物件的啟動方法,讓執行緒啟動 執行緒的生命週期:新建new 就緒runnable 執行running 阻塞blocked 死亡die 執行緒會在幾種狀態之間改變 新建new 執行緒類通過繼承Thread實現Run
java基礎類庫學習(六.6)物件序列化
前言 物件序列化:允許把記憶體中的物件轉換成平臺無關的二進位制流,從而把這種二進位制流持久的儲存自磁碟上,通過網路將這種二進位制流傳輸到網路的另一個節點,其他程式一旦獲得了這種二進位制流,都可以將這種二進位制流恢復成原來的java物件 物件的序列化是指將一個java物件寫入io流中,
java基礎類庫學習(六.5)輸入輸出流體系
前言 輸入輸出流的4個抽象基類InputStream/OutputStream Reader/Writer 4個訪問檔案的節點流:FileInputStream/FileReader FileOutputStream/FileWriter 處理流的用法:
java基礎類庫學習(六.3)位元組流 字元流(輸入輸出)
前言: 位元組流和字元流的操作方式幾乎相同,區別只是操作的資料單元不同而已 位元組流操作的資料單元是位元組8位,字元流操作的資料單元是字元16位 輸入流 字元輸入流/位元組輸入流原始碼(輸入流的抽象基類) InputStream public abstract class
java基礎類庫學習(六.2)輸入輸出 I/O流
前言 java的IO通過java.io包下的類和介面來支援,包括輸入輸出兩種流,每種流又分為位元組流和字元流, 輸入輸出流:位元組流和字元流 位元組流:以位元組為單位處理輸入輸出 字元流:以字元來處理輸入輸出 java7對原有io進行升級,提供了一系列全新的API放在NIO中
java基礎類庫學習Annotation
前言: jdk5開始,java提供了註解的支援 Annotation:是程式碼裡的特殊標記,這些標記可以在編譯/類載入/執行時被讀取,並執行相應的處理 而基本的註釋程式只在編譯的時處理 Annotation可以修飾什麼? 可以修飾包/類/構造器/方法/成員變數/引數/區域性變
Java基礎類庫(下)
Java基礎類庫(下) System類 System類代表當前Java程式的執行平臺,程式不能建立System類的物件,System類提供了一些變數和類的方法,允許通過System類來呼叫這些方法。 System類提供了代表標準輸入、標準輸出、錯誤輸出的類變數: System.i
Java基礎類庫(上)
Java基礎類庫(上) Java提供了豐富的基礎類庫,Java 8提供了4000多個基礎類,這些類可以幫我們降低開發難度,提高開發效率。但是這些基礎類並不需要我們去背,我們只需要在平常的使用中去反覆的查閱API文件,就可以記住大部分功能,下面介紹幾個在Java中常用的基礎類,來了解並
Java基礎類庫
一、StringBuffer類 在講解StringBuffer類之前先來回顧一下String類特點: 一個字串常量就是String類的匿名物件; String類物件有兩種例項化方式: |- 方式一:直接賦值,可以自動入池,只開闢一塊記憶體空間;