小编Dav*_*ide的帖子

C++:快速将映射文件读入矩阵的方法

我正在尝试将映射文件读入矩阵.该文件是这样的:

name;phone;city\n
Luigi Rossi;02341567;Milan\n
Mario Bianchi;06567890;Rome\n
.... 
Run Code Online (Sandbox Code Playgroud)

而且它很安静.我写的代码工作正常,但不是那么快:

#include <iostream>
#include <fstream>
#include <string>
#include <boost/iostreams/device/mapped_file.hpp>

using namespace std;

int main() {

    int i;
    int j=0;
    int k=0;

    vector< vector<char> > M(10000000, vector<string>(3));

    mapped_file_source file("file.csv");

    // Check if file was successfully opened
    if(file.is_open()) {

      // Get pointer to the data
      const char * c = (const char *)file.data();

      int size=file.size();

      for(i = 0; i < (size+1); i++){

       if(c[i]=='\n' || i==size){
        j=j+1;
        k=0;
       }else if(c[i]==';'){
        k=k+1;
       }else{
        M[j][k]+=c[i];
       }    
     }//end for …
Run Code Online (Sandbox Code Playgroud)

c++ memory boost

3
推荐指数
1
解决办法
1027
查看次数

标签 统计

boost ×1

c++ ×1

memory ×1