① . next_permutation prev_permutation:可以按升序生成下一个字典序列。。。
例:
int shu[6]={1,2,3,4,5,6};
则 next_permutation(shu,shu+6)后
shu[6]={1,2,3,4,6,5};
如果下一序列存在,此函数的return值为true;
如果shu[6]={6,5,4,3,2,1};下一序列不存在
则此函数的return 值为false;
prev_permutation 的用法和next_permutation 的一样,,,他是求降序的。。。。。
② . replace: 字符替换
string ch,chl="we";//定义string 类型
ch.replace(ch.begin()+it,ch.begin()+it+3,chl.begin(),chl.end());
将ch 字符串中的ch[it]到ch[i+2]替换为 chl的begin()到chl的end(),也可以写成chl().begin()+2;;
string::size_type it;//定义it 为string类型的长度
it=ch.find("you");//查找下一个“you”出现的位置 。。
例题:南阳oj 113题 字符串替换
3. lower_bound 和 upper_bound
定义vector <int> shu
lower_bound(shu.begin(), shu.end(),val)算法返回一个非递减序列shu中的第一个大于等于值val的位置。
upper_bound(shu.begin(), shu.end(),val)算法返回一个非递减序列shu中第一个大于val的位置。
如 shu[]={ 1,2,3,4,5,6,6,6,7,7,7,7}
lower_bound(shu.begin(), shu.end(),6)=5; (shu[5])
upper_bound(shu.begin(), shu.end(),val)=8; (shu[8])
4.vector
vector <int> xiang[MA]; 建立vrctor 容器,名字是xiang[MA]
xiang[a].push_back(b); 向 xiang[a] 最后添加元素b.
li=xiang[p].back();返回 xiang[p] 中的最后一个元素。
xiang[p].pop_back();删除 xiang[p] 中最后一个元素。
ve.insert(ve.begin()+llp,b); //是将b插入到ve[ llp ] 的前面。
memcpy(temp,ma,sizeof(ma));
把ma里面的东西复制到temp里面
实数转为字符串型:
char s[80];
double f = 1.2345;
sprintf(s,"%lf",f);
字符串ch---重读
sscanf(ch,"%s%s",ch1,ch2);//重读