你好,我只是想提一下我试着搜索这个话题但没找到任何东西,所以我的问题在这里:
我写了一个小程序,我想制作一个包含更新时间戳的列表。所以我写了一个小班来处理这件事。 (我遗漏了不必要的东西)
编辑:还要提一下,实际的功能是在一个.cpp文件中,这是带有添加功能的标题,仅供参考我实际编写的内容。
#pragma once
#include <chrono>
#include <map>
class TimeHandler
{
public:
TimeHandler();
~TimeHandler();
std::map<std::chrono::milliseconds, std::string> getTimeList();
/*add a timepoint for the current time to the timelist*/
void addTimePoint(std::string name);
/*print the timelist*/
void print();
private:
std::map<std::chrono::milliseconds,std::string> timeList;
};
void TimeHandler::addTimePoint(std::string name)
{
std::chrono::milliseconds ms = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch());
timeList.insert( std::make_pair(ms, name) );
//std::cout << "\n adding";
}
该类只处理我可以添加描述的时间事件。
现在我的问题。我将对象的指针指向其他函数,以便在它们的开头和结尾调用addTimePoint函数。 但并非所有时间都在那里。如果我在addTimePoint和debug中放置一个断点,一切正常,如果我在插入后添加一个std :: cout)。 但是如果我没有std :: cout或使用debuger它就不会把所有东西都放在地图上。
如果有人可以帮助我,那么问题似乎就在于任何想法的结尾。
请不要因为我的英语不好而判断我,我还在学习。
答案 0 :(得分:1)
谢谢大家的帮助,答案确实是,所花费的时间太短,因此第二次无法添加,因为时间戳是相同的。 (并且地图只能存储每个键一次)
我现在正在使用矢量:)