'STL'에 해당되는 글 8건

  1. 2010.06.26 stringstream 사용 (2)
  2. 2009.07.08 String#1 기본 메소드와 파일이름 다루기
  3. 2009.07.07 Map
2010.06.26 10:01

스트림을 인풋, 아웃풋 모드로 열고...걍 쓰면된다.....성능은... C보다 많이 떨어진다... atoi나 sprintf를 쓰는것보다 떨어짐..

'STL' 카테고리의 다른 글

stringstream 사용  (2) 2010.06.26
String#1 기본 메소드와 파일이름 다루기  (0) 2009.07.08
Map  (0) 2009.07.07
Set  (0) 2009.07.07
복잡도와 Big-O 표시법  (0) 2009.07.06
Deque  (0) 2009.07.06
Posted by hyunny82
TAG STL, String

#include <iostream>
#include <string>
using namespace std;

int main(int argc,char* argv[])
{
 string filename,basename,extname,tmpname;
 const string suffix("tmp");
 for(int i=1;i<argc;i++)
 {
  filename=argv[i];
  string::size_type idx=filename.find('.');  //find 계열함수의반환값을검사하기위해반환타입은string::size_type을항상사용.
             //아니면string::npos 동작안함.
   if(idx==string::npos){
    //파일이름에마침표없을때
    tmpname=filename+'.'+suffix;
   }
   else{
    basename=filename.substr(0,idx);      //파일이름과확장자를나눠서저장.
    extname=filename.substr(idx+1);
    if(extname.empty()){
     tmpname=filename;   //확장자없으면tmp 붙이고
     tmpname+=suffix;
    }
    else if(extname==suffix){
     tmpname=filename;     //tmp이면xxx로
     tmpname.replace(idx+1,extname.size(),"xxx");
    }
    else
    {
     tmpname=filename;    //그외는tmp로
     tmpname.replace(idx+1,string::npos,suffix);  //
    }

   }
  cout<<filename<<"=>"<<tmpname<<endl;
 }

}

'STL' 카테고리의 다른 글

stringstream 사용  (2) 2010.06.26
String#1 기본 메소드와 파일이름 다루기  (0) 2009.07.08
Map  (0) 2009.07.07
Set  (0) 2009.07.07
복잡도와 Big-O 표시법  (0) 2009.07.06
Deque  (0) 2009.07.06
Posted by hyunny82
2009.07.07 20:51

#include<string>

#include<iostream>

#include<map>

#include<iomanip>

/*

Map은key/value를한쌍으로취급하는원소를관리하는컨테이너

중복키허용은multimap

원소의직접액세스를위해[] 제공.

*/

usingnamespacestd;

intmain()

{

/*

typedef map<string,float> StringFloatMap;

 

StringFloatMap stocks;

stocks["BASF"]=369.50;

stocks["VW"]=413.50;

stocks["Daimler"]=819.00;

stocks["BMW"]=834.00;

stocks["Siemens"]=842.20;

 

StringFloatMap::iterator pos;

for(pos=stocks.begin();pos!=stocks.end();pos++)

{

cout<<"stock: "<<pos->first<<"\t"

<<"price: "<<pos->second<<endl;

}

cout<<endl;

 

for(pos=stocks.begin();pos!=stocks.end();pos++)

{

pos->second*=2;//가격두배로

}

 

for(pos=stocks.begin();pos!=stocks.end();pos++)

{

cout<<"stock: "<<pos->first<<"\t"

<<"price: "<<pos->second<<endl;

}

cout<<endl;

 

stocks["Volkswagen"]=stocks["VW"];

stocks.erase("VW");

 

 

for(pos=stocks.begin();pos!=stocks.end();pos++)

{

cout<<"stock: "<<pos->first<<"\t"

<<"price: "<<pos->second<<endl;

}

cout<<endl;

*/

 

//사전식

typedefmultimap<string,string> StrStrMMap;

StrStrMMap dict;

 

dict.insert(make_pair("day","Tag"));

dict.insert(make_pair("Strange","fremd"));

 

dict.insert(make_pair("car","Auto"));

 

dict.insert(make_pair("smart","elegant"));

dict.insert(make_pair("trait","Merkmal"));

dict.insert(make_pair("strange","seltsam"));

dict.insert(make_pair("smart","raffiniert"));

dict.insert(make_pair("smart","klug"));

dict.insert(make_pair("clever","raffiniert"));

 

StrStrMMap::iterator pos;

cout.setf(ios::left,ios::adjustfield);

cout<<' '<<setw(10)<<"english "<<"german "<<endl;

cout<<setfill('-')<<setw(20)<<""

<<setfill(' ')<<endl;

for(pos=dict.begin();pos !=dict.end();pos++)

{

cout<<' '<<setw(10)<<pos->first.c_str()

<<pos->second<<endl;

}

cout<<endl;

 

//key가smart인원소의value출력

string word("smart");

cout<<word<<": "<<endl;

for(pos=dict.lower_bound(word);pos!=dict.upper_bound(word);pos++)

{

cout<<" "<<pos->second<<endl;

}

 

//value가raffiniert를가진원소의key 출력

word=("raffiniert");

cout<<word<<": "<<endl;

for(pos=dict.begin();pos!=dict.end();pos++)

{

if(pos->second==word){

cout<<" "<<pos->first<<endl;

}

 

}

return0;

}

 

'STL' 카테고리의 다른 글

stringstream 사용  (2) 2010.06.26
String#1 기본 메소드와 파일이름 다루기  (0) 2009.07.08
Map  (0) 2009.07.07
Set  (0) 2009.07.07
복잡도와 Big-O 표시법  (0) 2009.07.06
Deque  (0) 2009.07.06
Posted by hyunny82
이전버튼 1 2 3 이전버튼

티스토리 툴바