gotoxy(int x,int y)函数的使用。
因为C++标准库中没有这个函数,使用的时候需要自己定义
void gotoxy(int x, int y) {
COORD pos;
pos.X = x,pos.Y = y;
HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);// 获取标准输出设备句柄
SetConsoleCursorPosition(hOut, pos);//两个参数分别是指定哪个窗体,具体位置
}
在输出的时候,可以把光标移动到任意位置,但要注意x,y的范围:在DOS输出窗口中,从左向右为x方向,且下标从0开始;用上向下为y方向,下标从0开始。
在做一些杂题需要很烦人的输出的时候,这个函数是个不错的选择!
慎用!!!
全排列next_permutation函数
next_permutation(begin,end);
begin,end可以是数组的起始,终止地址,也可以是string的起始,终止迭代器,也可以是vector的起始,终止迭代器。
函数会改变元容器的值的顺序,使其变成原排列的下一个排列,如果原序列还存在下一个排列,则函数返回0;否则返回1。即原序列递减时,函数返回1.
注意:next_permutation()函数是自动去重的
与下一个全排列对应的是上一个全排列函数prev_permutation().
还有leetcode里,使用sort函数时,若要重新定西排序方式,cmp函数如果写在类里面的话一定要加上static关键字,类外可不加。
因为:非静态成员函数是依赖于具体对象的,而std::sort这类函数是全局的,因此无法再sort中调用非静态成员函数。静态成员函数或者全局函数是不依赖于具体对象的, 可以独立访问,无须创建任何对象实例就可以访问。同时静态成员函数不可以调用类的非静态。所以要加上static关键字。
leetcode 46.permutation
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
sort(nums.begin(),nums.end());
vector<vector<int>> ans;
ans.push_back(nums);
while (next_permutation(nums.begin(),nums.end()))
ans.push_back(nums);
return ans;
}
};
string类 += 和 + 的区别
:先把等号右边的两个string对象相加得到一个新的对象,然后再把新对象复值给strstr = str + s
:直接在str后面接上sstr += s
0 条评论