一条语句系列——C++ STL(不定期更新)

map:


vector:

// 获取vector中某个范围内的元素
vector
   
   
    
     array_slice(vector
    
    
     
      input_v, int start, int retcount){
	vector
     
     
      
       list_ret_str;
	int len = 0;
	for (int index = start; index < input_v.size() && len < retcount; index ++, len ++){
		list_ret_str.push_back(input_v[index]);
	}

	return list_ret_str;
}
     
     
    
    
   
   

// 获取vector< pair
   
   
    
     > 中所有key
vector
    
    
     
      array_keys(vector
     
     
      
      
       
        > input_v){
	vector
       
       
         list_ret_str; vector 
         
         
           >::iterator it; for (it = input_v.begin(); it != input_v.end(); it ++){ list_ret_str.push_back(it->first); } return list_ret_str; } 
          
         
       
      
      
     
     
    
    
   
   


// 合并数组。防重复的合并,如果v2中的值在v1中有了,则舍弃该值不合入v1。
vector
   
   
    
     array_merge(vector
    
    
     
      v1, vector
     
     
      
       v2){
	vector
      
      
       
       ::iterator it;
	for (it = v2.begin(); it != v2.end(); it ++){
		string str_tmp = *it;
		if (find(v1.begin(), v1.end(), str_tmp) != v1.end()){
			v1.push_back(str_tmp);
		}
	}
	
	return v1;
}
      
      
     
     
    
    
   
   

string:

// 去除一行字符串两边的多余空格
string& trim(string &s)
{  
	if (s.empty()){  
		return s;  
	}  
  
	s.erase(0, s.find_first_not_of(" "));  
	s.erase(s.find_last_not_of(" ") + 1);  
	return s;  
}


// string转为int
int str2int(const string &string_temp)  
{   
	int int_temp;
    stringstream stream(string_temp);  
    stream>>int_temp;
	return int_temp;
}


// int转为string
string int2str(const int &int_temp)  
{  
	stringstream stream;  
	stream<
   
   
    
    >string_temp  
}
   
   

// 用dlim将数组连接起来成为字符串
string join(const string dlim, vector
   
   
    
     v)
{
	vector
    
    
     
     ::iterator it;
	string tmp = "";
	for (it = v.begin(); it != v.end(); it ++){
		tmp += *it + dlim;
	}
	tmp = tmp.substr(0, tmp.size()-1);
	
	return tmp;
}
    
    
   
   

// 按照cdelim将字符串分割为数组
void split(string& s, string cdelim, vector
   
   
    
    * ret)  
{  
	string delim = cdelim;
    size_t last = 0;  
    size_t index = s.find_first_of(delim, last);  
    while (index != std::string::npos)  
    {  
        ret->push_back(s.substr(last, index - last));  
        last = index + 1;  
        index = s.find_first_of(delim,last);  
    }  
    if(last < s.length()){
		ret->push_back(s.substr(last));
	}
}
   
   

pair:

1、对vector<pair<string, double> >进行排序

struct CmpByValue_desc {  
    bool operator()(const pair
  
  
   
    & lhs, const pair
   
   
    
     & rhs)
    {return lhs.second > rhs.second;}  
};

vector
    
    
     
     
      
       > toSortMap( map
      
      
        unsortmap, bool isDesc) { vector< pair 
       
         > counts(unsortmap.begin(), unsortmap.end()); // 降序排序 sort(counts.begin(), counts.end(), CmpByValue_desc()); // 如果请求的是升序排序,则倒置原先数组即可 if (!isDesc){ std::reverse(counts.begin(), counts.end()); } return counts; } 
        
      
     
     
    
    
   
   
  
  


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值