zoukankan      html  css  js  c++  java
  • 面试:C++输入数据

      最近在做笔试题,相比与leetcode,笔试题都是要自己写输入输出的,每次在这里都浪费了不少时间,这篇文章总结了一下在C++中怎么向数组中输入数据。

    1. 先输入数组大小,然后输入数据数据,中间以空格或者' '字符隔开

     1 /*
     2  * 两种输入方式
     3  * 3 ↙
     4  * 1 2 3 ↙
     5  *
     6  * 3 ↙
     7  * 1
     8  * 2
     9  * 3
    10  * ↙
    11  */
    12 vector<int> inputArray(){
    13     int size = 0;
    14     cin >> size;
    15     vector<int> inputs;
    16     for(int i=0;i<size;i++){
    17         int tmp;
    18         cin >> tmp;
    19         inputs.push_back(tmp);
    20     }
    21     return inputs;
    22 }

    2、输入以','字符分割的数据,思路将输入保存为字符串,然后转换为具体的数据

     1 // 1,2,3,4,5 ↙
     2 vector<int> inputArray2(){
     3     string inputs;
     4     cin >> inputs;
     5     //split
     6     vector<string> splits;
     7     int start = 0;
     8     for(size_t i=0;i<inputs.size();i++){
     9         if(inputs[i] == ','){
    10             splits.push_back(inputs.substr(start,i-start));
    11             start = i+1;
    12         }
    13     }
    14     if(start != (int)inputs.size()){
    15         splits.push_back(inputs.substr(start));
    16     }
    17     vector<int> res;
    18     for(string s:splits){
    19         res.push_back(std::stoi(s));
    20     }
    21     return res;
    22 }

    3.输入无限长度的数据,数据之间用空格分开,回车结束

     1 // 输入无限长度的数组 1 2 3 4 5 6 ...
     2 vector<int> inputArray3(){
     3     vector<int> inputs;
     4     int a;
     5     do{
     6         cin >> a;
     7         inputs.push_back(a);
     8     }while(getchar() != '
    ');
     9     return inputs;
    10 
    11 }

    4. 和方法1类似,输入二维数组

     1 vector<vector<int>> inputMatrix(){
     2     int m,n;
     3     cin >> m >> n;
     4     vector<vector<int>> matrix(m,vector<int>(n,0));
     5     for(int i=0;i<m;i++){
     6         for(int j=0;j<n;j++){
     7             int a;
     8             cin >> a;
     9             matrix[i][j] = a;
    10         }
    11     }
    12     return matrix;
    13 }
  • 相关阅读:
    折半查找比较次数
    1139 First Contact PAT (Advanced Level)
    Asp.Net中修改扩展名的问题
    Asp.Net中前台Javascript与C#函数相互调方法
    Ajax应用场景简析
    C# 对象深拷贝、浅铐贝、直接拷贝
    string中的CopyonWrite技术
    同时区分IE6、IE7、FF三种浏览器的Hack
    在C#.net中将查询数据导入EXCEL表输出
    UpdatePanel控件使用详解(二)
  • 原文地址:https://www.cnblogs.com/wxquare/p/7277255.html
Copyright © 2011-2022 走看看