The Fourth Dimension Space

枯叶北风寒,忽然年以残,念往昔,语默心酸。二十光阴无一物,韶光贱,寐难安; 不畏形影单,道途阻且慢,哪曲折,如渡飞湍。斩浪劈波酬壮志,同把酒,共言欢! -如梦令

TopCoder竞赛:C++, STL 用法快速入门(转)

下面总结了一些题目中常用的STL库的用法。

 

 
#include <algorithm>
#include <string>
#include <vector>
#include <map>
#include <iostream>
 
using namespace std;
 
//递归
int GetN(int n)
{
if (n==1) return 1;
else return GetN(n-1);
}
 
void TestSTL_main( int argc, char* argv[] )
//void main( int argc, char* argv[] )
{
/******** STL **********/
 
//string的用法
{
string s = "mmmmm";
string s2("ss22");
s2.insert(2,"kkkkk"); //把"kkkkk"插到s2的第2个位置之前(位置从0开始)
s2+=s+"44444"+'c';
const char *pc = s.c_str();//把string转成C-style的string,以\0终了
const char *ptr1 = s.data();;//把string转成字符串
if (s2[2] == 'k') s2[2]='C';
s+="jkl";
s+='m';
s.push_back('\n'); //把'\n'(换行符)放在s的最后一个位置
reverse(s.begin(), s.end()); //反转
basic_string <char>::iterator str_Iter; //遍历
str_Iter = s.begin();
}
 
//vector的用法
{
vector<int> v;
v.push_back(8); //向v中插入元素,元素的值是8
int iLen = (int)v.size();
for(int i=0;i<iLen;i++)
{
int k = v[0]; //k==8
}
}
 
//map的用法
{
map<int, int> mp;
for(int i=0;i<3;i++)
{
mp[i]=i*2; //通过[第一个元素]来访问第二个元素
}
 
int total = 100;
map<int, int>::iterator it = mp.begin();
for(;it!=mp.end();it++) //遍历mp
{
total+=it->second; //通过iterator it来访问第二个元素
}
cout<<"total="<<total<<endl;
}
 
//算法
int n = GetN(5); //递归n!=n*(n-1)*(n-2)*…*1
int aa=10,bb=15;
int maxi = max(aa,bb); //最大值
int mini = min(aa,bb); //最小值
int absi = abs(-12); //绝对值
vector<string> v;
v.push_back("hello");
v.push_back("123");
v.push_back("no");
sort(v.begin(),v.end()); //按照字母顺序,把v里面的元素排序
int savei;
sscanf(v[0].c_str(), "%d", &savei); //把字符串“123”转换成数字123
cout<<"savei="<<savei<<endl;
char buf[100];
sprintf(buf,"v[1]=%d",savei); //把内容打印进字符串
cout<<"buf="<<buf<<endl;
 
}

posted on 2009-10-27 15:35 abilitytao 阅读(677) 评论(2)  编辑 收藏 引用

评论

# re: TopCoder竞赛:C++, STL 用法快速入门 2009-10-27 16:33 OwnWaterloo

代码很好看。

GetN(int n)始终返回1? 复制时弄错了?
  回复  更多评论   

# re: TopCoder竞赛:C++, STL 用法快速入门 2009-10-27 17:00 abilitytao

@OwnWaterloo
可能是原作者写错了  回复  更多评论   


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理