【发布时间】:2021-02-24 06:04:42
【问题描述】:
#include <map>
#include <vector>
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
int size;
typedef vector<string> list;
typedef map<string, list> table;
void display(table &t){
cout << "\t\tCar Model\t\tTotal sold unit\t\t Cost of each unit\n"<<endl;
for(int i=0; i < size; i++){
cout << i << "\t\t" << t["Car_Model"][i]
<< "\t\t" << (t["num"][i] + t["num_"][i])
<< "\t\t" << t["Cost"][i]
<< "\n";
}
}
int main(){
cout<<"Enter number of Car Models: "<<endl;
cin>>size;
table t;
t["Car_Model"].reserve(size);
for(int i = 0; i < size; i++){
cout<<"Enter Car Model: ";
cin>>t["Car_Model"][i];
cout<<"Cost: ";
cin>>t["Cost"][i];
cout<<"No. of unit sold(2000-2010): ";
cin>>t["num"][i];
cout<<"No. of unit sold(2010-2020): ";
cin>>t["num_"][i];
}
display(t);
}
这是我的代码。它在编译时没有任何错误。但是在运行时,当我存储数据时,它会给出分段错误的错误。 当程序尝试访问不允许访问的内存位置,或尝试以不允许的方式访问内存位置(例如,尝试写入只读位置,或覆盖部分操作系统)。
【问题讨论】:
-
我强烈反对将您自己的类型命名为与现有标准类型相同,尤其是在使用
using namespace std;时。它可能会在不例外的时刻咬你一口。
标签: c++ dictionary stl