zoukankan      html  css  js  c++  java
  • TopCoder竞赛:C++, STL 用法快速入门

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

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

    2002年就开始参加TopCoder的算法竞赛。当时一周举行两次,每个房间12个人参加比赛,前三名都有现金奖励。有空参加一下,练练算法,给头脑保鲜。

    下面总结了一些题目中常用的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;
     
    }
  • 相关阅读:
    python处理csv数据
    python数据持久存储:pickle模块的基本使用
    使用SVD方法实现电影推荐系统
    使用矩阵分解(SVD)实现推荐系统
    多维数组分解----SVD在推荐系统中的应用-
    Logistic Regression--逻辑回归算法汇总**
    Netflix推荐系统:从评分预测到消费者法则
    从决策树学习谈到贝叶斯分类算法、EM、HMM
    数据挖掘中 决策树算法实现——Bash
    决策树算法
  • 原文地址:https://www.cnblogs.com/lexus/p/2814678.html
Copyright © 2011-2022 走看看