代码功能描述:
将各自产品支持的各自功能或特性汇总成一张2维大表.?参考下面的输入输出样例.
目录
源代码
输入样例
输出样例
粘贴到MarkDown工具内
快速运行
源代码
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
typedef string TYPE;
typedef string ITEM;
int main()
{
string type;
vector<TYPE> typelist;
vector<ITEM> allitemlist;
vector<ITEM> typeitemlist;
map<TYPE, vector<string>> mp;
while(cin>>type){
if(type == "-1")
break;
typelist.push_back(type);
string item;
while(cin>>item){
if(item=="-1")
break;
if(find(allitemlist.begin(), allitemlist.end(), item)==allitemlist.end())
allitemlist.push_back(item);
typeitemlist.push_back(item);
}
mp[type]=(typeitemlist);
typeitemlist.clear();
}
// 输出表头
cout << "| |";
for(vector<TYPE>::iterator it = typelist.begin(); it!=typelist.end(); it++)
cout << *it << " |";
cout << endl;
cout << "|---|";
for(vector<TYPE>::iterator it = typelist.begin(); it!=typelist.end(); it++)
cout << "---|";
cout << endl;
// 输出表主体
for(vector<ITEM>::iterator it = allitemlist.begin(); it!=allitemlist.end(); it++){
cout << "| " << *it << " |";
for(vector<TYPE>::iterator tp = typelist.begin(); tp!= typelist.end(); tp++){
if ( std::find(mp[*tp].begin(), mp[*tp].end(), *it) != mp[*tp].end() )
cout << " True" << " |";
else
cout << " " << " |";
}
cout << endl;
}
}
输入样例
[产品甲]
A功能
B功能
C功能
D功能
-1
[产品乙]
B功能
F功能
c功能
-1
[产品丁]
C功能
G功能
-1
-1
输出样例
| |[产品甲] |[产品乙] |[产品丁] |
|---|---|---|---|
| A功能 | True | | |
| B功能 | True | True | |
| C功能 | True | | True |
| D功能 | True | | |
| F功能 | | True | |
| c功能 | | True | |
| G功能 | | | True |
粘贴到MarkDown工具内
快速运行
C++ 在线工具 | 菜鸟工具 (runoob.com)
|