1. 程式人生 > >linux下練習 c++ 容器set、multimset的特性

linux下練習 c++ 容器set、multimset的特性

print.h

//print.h

#include <iostream>

using namespace std;

#ifndef print_fun

#define print_fun

template<typename T>

///顯示序列資料

void print(T b,T e,char c=' ')

{

	bool isExit=false;

	while (b!=e)

	{

		cout<<*b++<<c;

		isExit=true;

	}

	if(isExit) cout<<endl;



}

template<typename K,typename V>

ostream& operator<<(ostream& o,const pair<K,V>& p)//過載輸出map型別元素

{

	return o<<p.first<<':'<<p.second;

}

#endif

set.cpp

/*

set特性

元素就是key=value

不允許重複

*/

#include<set>

#include<iostream>

using namespace std;

#include<string>

#include<fstream>
#include"print.h"

int main()

{

	set<string> ss;//定義容器

	string s;//

	ifstream fin("maillist.txt");

	if(!fin)

	{

		return 1;

	}

	while(fin>>s) ss.insert(s);

	print(ss.begin(),ss.end());

}

結果:

multiset.cpp

/*

set特性

元素就是key=value

允許重複key

*/

#include<set>

#include<iostream>

using namespace std;

#include<string>

#include<fstream>

#include<map>
#include"print.h"

int main()

{

	multiset<string> ms;

	string s;

	ifstream fin("maillist.txt");

	if(!fin)

	{

		return 1;

	}

	while(fin>>s) ms.insert(s);

	print(ms.begin(),ms.end());

	multiset<string>::iterator ib=ms.begin(),ie;

	multimap<int,string> mis;

	while(ib!=ms.end())

	{

		mis.insert(make_pair(ms.count(*ib),*ib));//排好序的一段

		ib=ms.upper_bound(*ib);

	}

	print(mis.begin(),mis.end());

	return 0;

}

maillist.txt  

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

[email protected]

結果:

相關推薦

linux練習 c++ 容器setmultimset特性

print.h //print.h #include <iostream> using namespace std; #ifndef print_fun #define print

LinuxC/C++開發基礎(編寫makefile編譯C/C++連結可執行程式)

本文重點介紹C/C++原始碼工程的編譯連結,編譯器gcc/g++的安裝配置略過... 1. 安裝配置gcc g++ 2. 建立檔案 test.h /test.c / file.h  / file.cpp  3. 編譯.o庫: gcc -c / g++ -c     連結生成靜

關於如何在make一個LinuxC/C++工程時,自動新增版本號編譯日期等資訊

本篇的目的:在makefile裡,將系統當前的時間傳遞進待編譯的C/C++工程中,用以指示編譯執行的時間,以及版本資訊等。 不多說了,先來看效果: 當前時間:2017.01.20  0:29 編譯完成後執行效果: [email protected]:~/Desk

C++的STL容器之關聯性容器setmultisetmapmultimap

STL對定義的通用容器分三類:順序性容器、關聯式容器和容器介面卡。順序性容器:vector、list、deque關聯性容器:set、multiset、map、multimap容器介面卡:stack、qu

Linux進行硬盤掛載分區刪除分區,格式化,掛載,卸載方法

硬盤 訪問 9.png dir 輸入 str 創建 指定 命令 本文簡單介紹了下文件系統及其操作(df命令),磁盤分區、格式化,還有最主要是掛載操作。 在這裏對“掛載”做個說明,我們都知道文件系統是創建在磁盤上面的,每個文件系統都有獨立的inode、block等信息,而這

LinuxC獲取當前時間

time() 使用 ble timespec -1 ber 區間 本地 指向 Linux下用C獲取當前時間,具體如下: 代碼(可以把clock_gettime換成time(NULL)) ? 1 2 3 4 5 6 7 8 9 10 void getN

linux磁盤分區格式化掛載

格式 設置 4.6 linux /dev/ 劃分 5% 內存 logs 各種設備在linux下的文件名 實驗: 1) 開啟Linux系統前添加一塊大小為15G的SCSI硬盤2) 開啟系統,右擊桌面,打開終端3) 為新加的硬盤分區,一個主分區大小為5G,剩余空間給擴展分

LinuxC語言開發

xuni autoconf htm 參加 eve http 學習資料 inux c語言開發 工具 學會使用vim/emacs,vim/emacs是linux下最常用的源碼編輯具,不光要學會用它們編輯源碼,還要學會用它們進行查找、定位、替換等。 學會makefile文件的編

Linux安裝Python3.5.2Djangoparamiko

roo help 更新 pip3 sim egg pan man inf 1,安裝依賴文件: yum install zlib zlib-devel openssl openssl-devel 2,下載Python3.5.2: 安全連接時,要增加:--no-chec

linux利用CC++ 語言調用需要root權限的函數

編譯程序 註意 步驟 oot 登錄 調用 get bsp 屬於 1、setuid法(1)登錄root用戶,將程序設置成root:root所有者(等價於:登錄root用戶編譯程序)。也可直接將普通用戶加入root組中,那麽編譯程序不用來回切換用戶。(2)登錄root用戶設置程

linuxVSFTPD的主動模式被動模式和虛擬用戶登錄配置。

local ces -o 註意 linu lin guest 默認 connect 主動模式: 以CENTOS為例。 1、在 root 權限下,通過命令 yum install vsftpd 安裝 vsftp。 2、啟動 vsftpd 服務之前,需要登錄雲服務器修改配置文件

linux編譯c語言教程

準備工作 - Linux系統 - 懂得Linux系統下編輯器vim/vi軟體的使用 - 懂得簡易的c語言程式設計(初次學習的同學可以直接複製文章末尾的原始碼) 總結一下:有Linux系統,會使用Linux系統下的文字編輯器,有一點c語言基礎即可。 建立c語言檔案並編譯

linux檔案的建立時間訪問時間修改時間和改變時間

   Linux系統中沒有命令可以確切的檢視一個檔案的生成時間,但是可以知道訪問時間,修改時間,改變時間。 可以通過stat命令檢視一個檔案的訪問時間,修改時間,改變時間: 以下為三個時間的區別: 1、訪問時間(accesstime):讀取一次檔案的內容,該時間

linux 執行C程式

#include<stdio.h> int main(){ int a=100,b=25; if(a>b) printf(" The high value is %d\n",a); else printf(" Th

linux新建(mkdir)刪除(rmdir)資料夾

mkdir: 該命令:mkdir  ./folder2/folder3                   ./

LinuxC語言函式perror

perror的函式原型為`void perror(const char *s)` 這個函式會先輸出你傳給他的實參 s 所指的字串,後面再加上錯誤原因字串。此錯誤原因依照全域性變數errno 的值來決定要輸出的字串。 在庫函式中有個errno變數,每個errno值對應著以字串表示的錯誤型別。當

單目跟蹤位姿產品研發(二)----在linuxc++工程打包成動態庫so檔案API

       單目跟蹤位姿專案由對方公司提供應用場景,我方研發核心演算法,通過c++實現功能,然後對方公司通過java\js來開發炫酷的介面,共同合作完成,最終對方公司負責銷售推廣,推向市場。因此,涉及到java介面呼叫c++核心程式碼的問題。 現記錄

LINUX編譯c++11的程式碼

 C++11,(即ISO/IEC 14882:2011),是目前的C++程式語言的最新正式標準。它取代了第二版標準(第一版公開於1998年,第二版於2003年更新,分別通稱C++98以及C++03,兩者差異很小)。新的標準包含核心語言的新機能,而且擴充套件C++標準程式庫。C++11新標準

Linux使用java獲取cpu記憶體使用率

原文地址:http://www.voidcn.com/article/p-yehrvmep-uo.html 思路如下:Linux系統中可以用top命令檢視程序使用CPU和記憶體情況,通過Runtime類的exec()方法執行命令"top”,獲取"top"的輸出,從而得到CPU和記憶體的使用情況。

linuxc語言系統函式呼叫

目錄 4.linux下的系統函式的使用 c語言 4.1數學函式的使用 1pow函式 2.exp函式 3.log函式 4.rand()隨機數函式 4.2字元函式的使用 4.3系統時間與日期函式的使用 系統時間 時間間隔 4.4環境控制函式 &nb