C ++-更快:将n个整数用作输入与将输入作为字符串并将其拆分为整数

时间:2018-07-11 03:21:11

标签: c++ performance

这两种方法在这两种方法之间会更快地工作-

#include<iostream>
using namespace std;
int main() {
    int n;
    cin >> n;
    int arr[n];
    for(int i = 0; i < n; i++)
        cin >> arr[i];
}

OR

#include<iostream>
#include <string>
#include <sstream>

int main() {
    int n;
    cin >> n;
    int arr[n];
    std::string s;
    cin << s;
    std::istringstream is( s );
    int i,j=0;
    while( is >> i ) {
         arr[j++] = i;
    }
}

我通常读到I / O较慢。那么第二种方法的工作速度会比第一种方法快吗?

1 个答案:

答案 0 :(得分:0)

首先,您编写的第二个代码有很多错误。应该是这样的:

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main() 
{
int n;
cin >> n;
int arr[n];
std::string s;
cin >> s;
std::istringstream is( s );
int i,j=0;
 while( is >> i ) 
 {
     arr[j++] = i;
 }
return 0;
}
  • 第二,您应该使用std :: vector而不是int arr [n]。它 是C ++中的好习惯。
  • 第三,您所提出的问题无法确定 我们任何人。数组的大小应在编译时知道 时间。