将int型转换成二进制 && vector创建的二维数组

本文介绍了如何将int类型转换为二进制,并详细探讨了使用vector创建二维数组的方法,包括计算数组元素总数、行列数,以及通过resize和push_back函数进行初始化的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、将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;
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值