我有兩個地圖,tk1
和tk2
具有以下結構:發現集合的元素在一個地圖
std::map<std::string, double>tk1;
std::map<std::string, double>tk2;
tk1
包含以下數據:
2011-01-03 2200
2011-01-04 2209
2011-01-05 2300
和tk2
包含以下數據:
2011-01-03 2450
2011-01-04 2465
2011-01-06 2476
2011-01-07 2457
我有cre ated一組包含的日期作爲字符串作爲
std::set<std::string>dateset;
std::set<std::string>new_dateset;
我通過經由2個地圖迭代和插入到所述一組如在
dateset.insert(it->first);
dateset
創建它具有以下值:
2011-01-03
2011-01-04
2011-01-05
2011-01-06
2011-01-07
我想填充new_dateset,因此它只包含tk1
和tk2
中的日期,即new_dateset應該包含o NLY
2011-01-03
2011-01-04
我寫了下面:
std::set<std::string>::iterator it1=dateset.begin(), end1=dateset.end();
std::map<std::string, double>::iterator it2=tk1.begin(), end2=tk1.end();
std::map<std::string, double>::iterator it3=tk2.begin(), end3=tk2.end();
while (it1 != end1) {
if (it2->first == *it1)
new_dateset.insert(it2->first);
++it1;
}
但顯然我沒有做正確。有人可以建議最好的方法來做到這一點。
爲什麼?它更詳細,比plain更不清晰,並且在這裏做同樣的事情。 –