vectorc++要素は関数パラメータをしてどのようにします

2561 ワード

最近vectorに出会って少しぼんやりしていて、どうして1つの要素だけが伝わるのか思い出せません......構造体の配列を連想して結果がもっと乱れています......
 
次に比較します.
配列要素、定義関数パラメータint
コンテナクラス、定義関数パラメータは含まれる構造体studentです
int型配列の要素を関数パラメータとして使用します.
#include 
using namespace std;

void fun1(int num)//            
{
	cout <

student構造体の配列の要素を関数パラメータとして使用します.
#include 
using namespace std;
typedef struct
{
	int x;
	int y;
}student;
student mark[1];//student       

void fun2(student mum)//               
{
	cout <

student構造体のコンテナの要素を関数パラメータとして使用します.
#include 
#include 
using namespace std;
typedef struct
{
	int x;
	int y;
}student;
vector mark;//    student   ,     mark    ……


//void fun3(vector num),       ,          void fun1(int num[])  ……
void fun3(student mum)//              
{
	cout <

 
以下は、対比===================================================================================
伝達配列と伝達配列要素の対比
#include
using namespace std;
//  
void f1(int a[]);
void f2(int a);

int main()
{
	int a[1] = { 0 };//      a,  1   ,    a[0]

	//  
	f1(a);
	f2(a[0]);

	return 0;
}

//  
void f1(int a[])	//     
{
	cout << a[0] << endl;
}
void f2(int a)		//     
{
	cout << a << endl;
}

前の簡単な例:配列要素、配列ヘッダアドレスをパラメータとし、配列ヘッダが0の知識点を融合した.
#include  
void f1(int a)
{
	printf("%d 
", a); } void f2(int a[]) { printf("%d
", a[2]); } void main() { int a[5] = { 1,2,3,4,5 }; f1(a[1]); f2(a); }

実行結果:2行3
 
コンテナクラスコンテナクラス:[配列](Array)と[配列要素](Array Element)の比較
#include 
#include 
using namespace std;
typedef struct
{
	int x;
	int y;
}student;
vector mark;//    student   ,     mark    ……


void fun4(vector num)//       void fun1(int num[])
{
	cout << "student   ,x:" << num[0].x << endl;
	cout << "student   ,y:" << num[0].y << endl;
}

void fun3(student mum)//              
{
	cout << "student   ,x:" << mum.x << endl;
	cout << "student   ,y:" << mum.y << endl;
}

int main()
{
	mark.resize(1);//    ,         
	mark[0].x = 1;
	mark[0].y = 1;

	fun3(mark[0]);//    [0]   :       ,          
	fun4(mark);//    ,     (   )  

	return 0;
}