-1
在實踐項目中,我學習異步/線程方法以及服務類型類的概念。我有一個指向流對象的共享指針向量,但是我不知道如何檢查該向量中的重複項。如何在共享指針向量中檢查重複的'ofstream'對象
爲了說明問題,我選擇爲我的項目的每個模塊都有一個日誌文件,但是如果爲同一個文件添加兩個ofstream對象,可能會導致輸出中發生混亂。我嘗試了幾種不同的方法來比較它們,但我無法弄清楚這樣做的標準方法。關於這個問題似乎也沒有太多的信息,或者我錯過了一些基本的東西,我會爲了失蹤而sla myself自己。
我知道'我'正在訪問向量中的對象,但似乎無法得到這個編譯。任何和所有的幫助,不勝感激。
class LoggerService
{
public:
...
private:
...
bool add_log_file(const std::string& file)
{
bool is_duplicate = false;
for (int i : *ofstreams_) // <------ This block.
{
if (file.c_str() == i)
{
is_duplicate = true;
break;
}
}
if (!is_duplicate)
{
return false;
}
else
{
ofstreams_.push_back(std::make_shared<std::ofstream>(file.c_str()));
return true;
}
}
...
static std::vector<std::shared_ptr<std::ofstream>> ofstreams_;
...
}
我喜歡有地圖的想法,我會給你一個鏡頭。你能讓我知道你爲什麼要求我?我只是沒有意識到沒有任何方法來比較沒有初步數據的物流對象。 – BleuGamer
我沒有-1的問題 – pm100