stu arrstu[1200]=
{
line(_T("張三"), 0.4, 0.6, Color(0,0,0), 1, 1),
line(_T("李四"), 0.4, 0.6, Color(25, 25,112), 1, 2),
line(_T("王五"),16000, 22000, Color(205, 38, 38), 2, 1),
line(_T("趙"), 8000, 15000, Color(156,102, 31), 2, 2),
...........后面還有很多
};
我想直接通過某人的姓名如張三來獲取他的分數或者修改分數怎么實作?我知道可以通過arrstu[0]. score來得到或者修改,但是當記不住張三在陣列中得下表位置,可能在1000也可能999得時候怎么辦?想用哈希表但是一個string不能關聯一個物件,想用容器又沒有vector.find()這個功能,求大佬指點怎么能實作?
uj5u.com熱心網友回復:
第一,string可以作為std::map的key使用。第二,人名有可能重復,唯一的應該是學號,應該通過學號獲得資訊然后修改.uj5u.com熱心網友回復:
遍歷陣列把姓名和陣列成員的指標保存在map中,使用map可以進行find操作uj5u.com熱心網友回復:
你可以用map,用學號或姓名做key,學生類做value。按key找value即可。uj5u.com熱心網友回復:
還有,“想用容器又沒有vector.find()這個功能”這句話是有問題的。C++提供了演算法類,里面有全域的find函式,可以用于在vector里面查找資料,結果是一個迭代器,可以修改迭代器的score,具體用法可百度。uj5u.com熱心網友回復:
我這個不用考慮重復,我知道string可以作為key用,我想要得效果是<string,line(_T("張三"), 0.4, 0.6, Color(0,0,0), 1, 1)>然后通過string直接修改物件line里面得引數,假如就是得到學號了,怎么去獲得分數?我知道用陣列arrstu[i]. score可以修改分數,問題是i我不確定位置?這個i通過什么什么方法查詢能確定?轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/242098.html
標籤:C++ 語言
