C++参数传递与STL

C++参数传递与STL

这是一篇备忘录形式的内容,涉及到的内容比较基础

今天写了一个小算法,用一个set在函数间传递,记录各个函数中的结果。但是最后结果显示set中的元素是0个。查了一下才发现,用来C++中对于STL对象作为函数参数时是默认传值的,相当于在函数中再造了一个STL对象。这提醒了我之后在写的时候要注意函数间参数传递的类型。

C++中对于STL对象(其实都是类对象,STL对象就是容器类对象)和类对象,默认的传递方式都是传值,要是想要传指针或者传引用需要自己写。这里要注意的就是不要忽视了默认传值、不改变原对象这一点。而对于指针和引用,虽然底层上的原理都是指针,但是在使用上还是有不同的:

  1. 传指针的话需要先创建对象的指针,声明方法一般是class A*=new class(<构造函数参数>),函数参数列表中应该写明是指针类型,在使用时应该用->符号
  2. 传引用的话,只需要在函数参数列表中写明是引用类型(即在对象名前加&)即可,对象的创建依然可以用class A a(<构造函数参数>),调用对象的方法时直接用.即可。
原文地址:https://www.cnblogs.com/jiading/p/11540571.html