C++中“.“,“::“,“:“,“->“的意义及区别、vector二维数组的赋值与访问

一、C++中".","::",":","->"的意义及区别:

1、"A.B"则A为对象或者结构体;

2、"A->B"则A为指针,->是成员提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针;

3、"::"是作用域运算符,A::B表示作用域A中的名称B,A可以是名字空间、类、结构;

4、":"一般用来表示继承;

二、C++中二维vector赋值操作:

1、直接赋值:
vector<vector<int>> mat =
 { {3, 0, 1, 4, 2},
{5, 6, 3, 2, 1 },
{1, 2, 0, 1, 5},
{4, 1, 0, 1, 7},
{1, 0, 3, 0, 5} };
2、创建数组后再用循环遍历赋值:
 vector< vector<int>> arr(i, j); // i行j列 二维数组
    for(i = 0; i < array.size(); i++) 
{ 
  for (j = 0; j < array[0].size();j++)
 { 
  array[i][j] = i*j; 
} 
}
3、利用push_back进行赋值:
 vector< vector<int>> arr(i, j); // i行j列 二维数组
    for(i = 0; i < array.size(); i++) 
{ 
  for (j = 0; j < array[0].size();j++)
 { 
  array[i][j].pushback(i*j); 
} 
}
4、拷贝赋值:
vector<vector<int>> arr1;
vector<int> arr2;
arr2.assign(n, m);//将n个m给数组arr2赋值
for (int i = 0; i < 5; i++) {
	arr1.push_back(arr2);
}

二、C++中二维vector访问操作:

1. 迭代器iterator访问元素:
for (vector<vector<int>>::iterator row = arr1.begin(); row != arr1.end(); row++) {
	for (vector<int>::iterator it = (*row).begin(); it != (*row).end(); it++){
		cout << *it << " ";
	}
	cout << endl;
}
2. []访问元素:
vector<vector<int> >num1;
vector<int> num2;
 {
    num2.push_back(1);
    num2.push_back(2);    
    num2.push_back(3);
    num2.push_back(4);
 }  
     num1.push_back(num2);
     num1.push_back(num2);
     num1.push_back(num2);
 //访问一维数组num2的值:
 for(int i = 0; i< num2.size();i++)
 {
 	cout << num2[i] << endl;
 }
 //访问二维数组num1的值:
 for(int i = 0; i< num1.size();i++){
 for(int j = 0; j< num2.size();j++)
 {
 	cout << num1[i][j] << endl;
 }
}
/*PS:
	在二维矩阵最后位置添加一行元素:num1.push_back(vector<int> num2);
    在某一行末尾添加一个元素:num1[i].push_back(i);
	每行的数目可以不一样,每列的数目也可以不一样
*/

PS: at()只能访问一维数组的元素:

//访问一维数组num2的值:
 for(int i = 0; i< num2.size();i++)
 {
 	cout << num2.at(i) << endl;
 }

一维vector动态数组知识点:

(1)vector<int> a(10); //定义了10个整型元素的向量(尖括号中为元素类型名,它可以是任何合法的数据类型),但没有给出初值,其值是不确定的。
(2)vector<int> a(10,1); //定义了10个整型元素的向量,且给出每个元素的初值为1
(3)vector<int> a(b); //用b向量来创建a向量,整体复制性赋值
(4)vector<int> a(b.begin(),b.begin+3); //定义了a值为b中第0个到第2个(共3个)元素
(5)int b[7]={1,2,3,4,5,9,8};vector<int> a(b,b+7); //从数组中获得初值
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值