1. 程式人生 > 其它 >在Ubuntu上學習C++(1)

在Ubuntu上學習C++(1)

技術標籤:筆記

以前學過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()   	//出隊