一、将int型转换成二进制
//使用容器转换二进制
int BinaryVector(int n)
{
int temp= n;
vector<int>ivec;
while (temp != 0)
{
ivec.push_back(temp % 2);
temp = temp>>1;
}
for (auto i:ivec)
cout<<i<<" ";
cout<<endl;
return 0;
}
二、 vector创建的二维数组
(1)对于容器vector创建的数组,,,
vector<vector<int> >array
int row=array.size();//行数
int col=array[0].size();//列数
(2)二维数组 int a[3][4];
数组元素的总数: sizeof(a) / sizeof(int)
数组列数: sizeof(a[0])/sizeof(int)
数组行数 :( sizeof(a) / sizeof(int) )/ ( sizeof(a[0]) / sizeof(int) )
#include <iostream>
using namespace std;
int main()
{
int a[3][4]={{1,2,3,0},{4,5,6,0},{7,8,9,0}};
int m=sizeof(a[0])/sizeof(int);
int n=(sizeof(a)/sizeof(int))/(sizeof(a[0])/sizeof(int));
cout<<n<<' '<<m;
return 0;
}
(3)利用vector的二维数组初始化
1)由vector实现的二维数组,可以通过resize()的形式改变行、列值
vector<vector <int> > matrix(3);//3行一维数组
for (int i = 0; i < 3; i++)
matrix[i].resize(5);
//每一维有5个元素,即3行5列,,,使用“列”的时候,需要使用vector的resize方法
/* 3行5列全0
vector<vector <int> > ivec;
ivec.resize(3);
for (int i = 0; i<3; i++)
ivec[i].resize(5);
*/
/* 3行5列全0
vector<vector <int> > ivec;
ivec.resize(3, vector<int>(5));
*/
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 5; j++)
matrix[i][j] = (i + 1)*(j + 1);
}
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 5; j++)
cout <<left<< setw(3) <<matrix[i][j]<<" ";//左对齐输出矩阵,需要包含头文件#include<iomanip>
cout << endl;
}
2)所有元素初始化为0
vector<vector <int> > ivec(m ,vector<int>(n,0)); //m*n的二维vector,所有元素初始化为0,注意两个 "> "之间要有空格!
3)利用Vector的push_back函数
#include<iostream>
#include<vector>
#include<iomanip>//左对齐setw()
using namespace std;
void main() {
vector<vector<int>> vec;
vector<int> a;
a.push_back(1);
a.push_back(2);
a.push_back(3);
vector<int> b;
b.push_back(4);
b.push_back(5);
b.push_back(6);
vec.push_back(a);
vec.push_back(b);
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
cout << left << setw(3) << vec[i][j] << " ";//左对齐
cout << endl;
}
}