C++基础入门及VS2019使用(一)

using namespace std;    名称空间的概念

用来缓解复杂程序的组织问题;函数的名称相同,参数类型也相同(不能重载);解决办法就是将两个函数写在各自的名称空间里,然后就可以调用zhang3:funtcion()和lisi:function()这样的方式进行调用了

C++中使用流简化输入输出操作,标准输入输出流在头文件iostream中定义,存在于名称空间std中

template 模板

template T sum(T* begin T* end){}  --template模板

template

结构体struct   

很多的情况都和class相似,于class不同的是,结构体包含的函数默认是public,而不是private

#include
#include
using namespace std;

struct Point {
	int x, y;
	Point(int x = 0, int y = 0) : x(x), y(y) {}
};

Point operator + (const Point& A, const Point& B) {
	return Point(A.x + B.x, A.y + B.y);
}

ostream& operator << (ostream& out, const Point& p) {
	out << "(" << p.x << "," << p.y << ")";
	return out;
}

template 
T sum(T* begin, T* end) {
	T* p = begin;
	T ans = 0;
	for (T* p = begin; p != end; p++) {
		ans = ans + *p;
	}
	return ans;
}
int main() {
	double a[] = { 1.1,2.2,3.3,4.4 };
	cout << sum(a, a + 4) << "\n";
	Point b[] = { Point(1,2),Point(3,4),Point(5,6),Point(7,8) };
	cout << sum(b, b + 4) << "\n";
	return 0;
}

 不定长数组:vecter

假如a是一个vecter,可以用a.size()读取他的大小,a.resize()改变大小,a.push_back()向尾部添加元素,a.pop_back()删除最后一个元素

三种传递的实例

#include
using namespace std;
//值传递
 void change1(int n){
    cout<<"值传递--函数操作地址"<<&n<#include
#include
using namespace std;
int main() {
	set s;
	set::const_iterator iter;
	set::iterator first;
	set::iterator second;
	for (int i = 0; i <= 10; ++i) {
		s.insert(i);
	}
	//erase(iterator) 删除定位器iterator指向的值
	s.erase(s.begin());

	//erase(first,second) 删除定位器first和second之间的值  (不包括second)
	first = s.begin();
	second = s.begin();
	second++;
	second++;
	s.erase(first, second);

	//erase(key_value)  删除键值key_value的值
	s.erase(8);
	for (iter = s.begin(); iter != s.end(); ++iter) {
		cout << *iter << " ";
	}
	cout << endl;
	return 0;
}

 

你可能感兴趣的:(C++)