C++
C++中常用的小trick
是大糊涂不聪明
写博客的目的是为了方便自己,经常找不到需要的程序,记本子上又容易丢...
如果有错误的地方啊,麻烦指出来哈
展开
-
输入字符串C++
对于string类:这个是输入2个字符串,换行结束#include<iostream>#include<vector>#include<string>using namespace std;int main(){ vector<string> arr; string mystr; int k = 2; while (k--) { getline(cin, mystr); arr.push_back(mystr); } fo原创 2021-04-18 20:36:37 · 109 阅读 · 0 评论 -
选择排序,冒泡排序,C++
1.不稳定序列5 8 5 2 9, 我们知道第一遍选择第1个元素5会和2交换,那么原序列中2个5的相对前后顺序就被破坏了2.时间复杂度O(n2)#include <iostream>using namespace std;int main(){ int arr[] = { 3,2,4,5,1,7 }; for (int i = 0; i < 6; i++) for (int j = i + 1; j < 6; j++) if (arr[j] <原创 2021-04-18 11:36:10 · 89 阅读 · 0 评论 -
键盘输入数字、字符到vector,程序
1.数字#include<iostream>#include<vector>using namespace std;int main(){ vector<int> arr; int m=0; cout << "输入的元素个数:" << endl; cin >> m; cout << "m=" << m << endl; int tmp=0; for (int i = 0; i原创 2021-04-17 22:39:44 · 1964 阅读 · 0 评论 -
快速排序C++,python
1.性质时间复杂度:O(nlogn) 最坏情况:O(n2)空间复杂度:O(logn)该排序算法不稳定排序算法稳定性的概念假定在待排序的记录序列中,存在多个具有相同的元素的(用下标表征其相对位置),若经过排序,这些元素的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。总结一下就是:对于两个大小相同的元素,每次排序后其相对位置如果不改变(下标i不会跑到j后原创 2021-04-17 20:00:35 · 112 阅读 · 0 评论 -
深拷贝与浅拷贝
1.代码#include <iostream>using namespace std;class Person {public: Person() {} //有参构造函数 Person(int age ,int height) { cout << "有参构造函数!" << endl; m_age = age; m_height = new int(height); } //拷贝构造函数 Person(const Person&原创 2020-09-17 17:05:18 · 63 阅读 · 0 评论 -
类对象,重载加号运算符
1.代码#include <iostream>using namespace std;class Person{public: int m_a; int m_b;public: Person(){}; //注意,如果写了有参构造,编译器不会提供默认构造 Person(int a,int b):m_a(a),m_b(b){}; Person operator +(const Person& p) { Person tmp; //否则,这里会报错,如果不写默认无原创 2020-09-17 16:36:48 · 225 阅读 · 0 评论 -
C++中的迭代器
迭代器语法:*vector::iterator it=v.begin( )。。。unorder iterator it = m.begin();it 则表示元素#include <iostream>#include <vector>using namespace std;int main(){ vector<int> v; for (int n = 0; n<5; ++n) v.push_back(n); vector<in原创 2020-06-03 10:32:04 · 282 阅读 · 0 评论 -
如何判断一个点和简单多边形的关系(C++代码)
1.声明此处的简单多边形,是只常见的凸多边形,比如三角形、长方形、五边形、6边形。不包括奇奇怪怪的多边形2.方法:常见的有1.向量叉乘2.面积法对于叉乘法的步骤:3.1.先判断有没有点在多边形的边上代码如下:看图,C的位置有如下可能,只有在边上,也就是AC+BC==AB才满足在边上的情况每个vector变量,就存两个坐标:横和纵bool isOnside(vector<int>& A, vector<int>& B, vector<in原创 2020-09-17 14:13:46 · 722 阅读 · 0 评论 -
sizeof(char)和sizeof(string)的区别
1.例子:#include <iostream>#include<string>using namespace std;int main(){ char a[] = "1234"; string b = "12345689"; cout << sizeof(a) << endl; cout << sizeof(b) << endl; cout<<sizeof(1==2)<<endl; re原创 2020-09-17 13:44:17 · 1523 阅读 · 0 评论 -
++i和i++的区别
1.主要区别:1、 i++ 返回原来的值,++i 返回加1后的值。2、 i++ 不能作为左值,而++i 可以。首先解释下什么是左值:左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。一般来说,左值是可以放到赋值符号左边的变量。但能否被赋值不是区分左值与右值的依据。比如,C++的const左值是不可赋值的;而作为临时对象的右值可能允许被赋值。左值与右值的根本区别在于是否**允许取地址&**运算符获得对应的内存地址。比如,int i = 0;int *p1转载 2020-09-17 11:41:01 · 295 阅读 · 0 评论