在Ubuntu上學習C++(1)
阿新 • • 發佈:2021-01-30
技術標籤:筆記
以前學過C語言,想學C++,電腦上沒VS,又懶得裝,於是就打算在以前裝過的Ubuntu虛擬機器上搞一搞,這是學習筆記
基本操作
安裝
sudo apt-get install gcc
sudo apt-get install g++
用清華的源感覺挺不錯
簡單操作
mkdir AAA #新建一個叫AAA的資料夾 touch AAA.cpp #新建一個叫AAA,副檔名是cpp的檔案 vim AAA.cpp #用vim編輯器敲程式碼 g++ AAA.cpp #編譯你寫完的C++程式碼,編譯好的檔案預設叫a.out g++ AAA.cpp -o AAA.out #編譯你寫完的C++程式碼,並讓編譯好的檔案叫AAA.out ./a.out #讓a.out執行
用vim編輯器敲程式碼
按a進入編輯模式(也有一些別的鍵可以,我習慣按a),正常敲程式碼就行,按Esc推出編輯模式
按 : 進入底部命令模式,按wq!回車,強制儲存退出(w儲存,q退出,!強制執行)
在C語言基礎上學C++
開始
#include <iostream> //不用寫.h using namespace std; //名稱空間,可以防止函式撞名字,用什麼就在main函式前些什麼,C++ 中常用的方法大多在std名稱空間裡 int main() { int a; cin >> a; //輸入一個數並丟進a裡 cout << a << "hahaha" << endl //把這一串東西挨個輸出去,endl,換行 return 0; } //C++還支援隨手定義變數
傳值
void fun(int &a){} //呼叫這個函式,將直接對丟進去的值操作,而不是像C語言一樣拷貝一份
void fun(int a){} //呼叫這個函式,發生的事情和C語言一樣
string,字串
string s = "hahaha"; //初始化字串 s3=s2+s1 //字串拼接 getline(cin, s); //讀取一行字串,包括空格 cin >> s; //讀入字串 cout << s; //輸出字串 cout << s.length(); //輸出字串s的長度 s2 = s.substr(2); //從下標為2取到結束 s3 = s.substr(5, 3); //從下標為5,往後取3個字元
vector,向量(很NB的陣列)
#include <vector> //用vector需要引用這個標頭檔案
vector<int> v1; //定義一個(裝載著int型資料的)vector v1,定義的時候沒有分配大小
vector<int> v2(10); //定義一個(裝載著int型資料的)vector v2,長度為10,預設這10個數為0
vector<int> v3(10, 9); //定義一個(裝載著int型資料的)vector v3,長度為10,預設這10個數為9
v1.size(); //v1的大小
v1.resize(8); //把v1的大小改成8
v[1]=8; //把v[1]中下標為1的那一個元素賦值為8;
v.push_back(5); //在v的末尾新增一個元素,值為5;
v.begin(); //一個指標,指向v的第一個元素;
v.end(); //一個指標,指向v的最後一個元素的後一個位置
set 集合
一個set裡的元素各不相同,且會自動從小到大排序
#include <set>//用set需要引用這個標頭檔案
set<int> s; //定義一個(裝載著int的)空set s
s.insert(8); //往s裡丟進一個元素,值是8
s.begin(); //一個指標,指向s中的第一個元素
s.end(); //一個指標,指向s中最後一個元素的下一個位置
s.find(10) != s.end() //能在s中找到值為10的元素
s.erase(1) //刪除s中值為1的元素
map 鍵值對
#include <map> //用map需要引用這個標頭檔案
map<string, int> m; // 定義⼀個空的map m,鍵是string型別的,值是int型別的
m["hello"] = 2; // 將key為"hello", value為2的鍵值對(key-value)存⼊map中
m["hello"] ; // 訪問map中key為"hello"的value, 如果key不存在,則返
回0
m.begin() //一個指標,指向m中的第一個元素
m.rbegin() //一個指標,指向m中最後一個元素
m.end() //一個指標,指向m中最後一個元素的下一個位置
pin->first //pin是指向m中的一個元素的指標,則這樣可以獲得它的鍵
pin->second //pin是指向m中的一個元素的指標,則這樣可以獲得它的值
m.size() //m中元素的個數
stack,棧
#include <stack> //用stack需要引用這個標頭檔案
stack<int> s; // 定義⼀個空棧s
s.push(8); //把一個元素入棧,它的值是8
s.top(); //棧頂
s.size(); //輸出s中的元素個數
s.pop(); //移除棧頂元素
queue,佇列
queue<int> q; // 定義⼀個空佇列q
q.push(8); //入隊
q.front() //隊頭
q.back() //隊尾
q.size() //佇列中元素的個數
q.pop() //出隊