C++ 分段故障容器 #包括 #包括 #包括 #包括 #包括 使用名称空间std; 整数大小; typedef向量列表; typedef映射表; 无效显示(表格和t){ cout
常见错误,C++ 分段故障容器 #包括 #包括 #包括 #包括 #包括 使用名称空间std; 整数大小; typedef向量列表; typedef映射表; 无效显示(表格和t){ cout,c++,dictionary,stl,C++,Dictionary,Stl,常见错误,reserve不会更改向量的大小,您需要resize。如下所示 #include <map> #include <vector> #include <string> #include <sstream> #include <iostream> using namespace std; int size; typedef vector<string> list; typedef map<string, l
reserve
不会更改向量的大小,您需要resize
。如下所示
#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);
}
reserve
在不改变向量大小的情况下为向量分配空间。其目的是在使用push_-back
或类似方法时防止昂贵的向量重新分配。但在这种情况下,由于您知道所需向量的大小,因此只需使用resize
即可获得该大小
PS,TyBuff<代码>清单< /> >不是一个好主意。C++已经有了一个<代码> STD::列表< /COD>类型,所以使用TyPulf给程序提供另一个类型,叫做“代码>列表< /C>”非常混淆。
< P>常见的错误,#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);
}
reserve
在不改变向量大小的情况下为向量分配空间。其目的是在使用push_-back
或类似方法时防止昂贵的向量重新分配。但在这种情况下,由于您知道所需向量的大小,因此只需使用resize
即可获得该大小
PS,TyBuff<代码>列表不是一个好主意。C++已经有了一个<代码> STD::列表< /代码>类型,所以使用TyPulf给你的程序另一个类型叫
和namespace std;
时。它可能会在未经接受的时刻咬到您。