containers

    3熱度

    3回答

    我想傳遞任意容器作爲函數的參數並遍歷它(不擦除也不推送元素)。不幸的是,它看起來像沒有這樣做的標準方式。 我想到的第一個解決方案是一個接口(讓我們稱之爲CollectionInterface)由將包裝STL容器的類實現。所以函數的聲明看起來像: f(const CollectionInterface * collection); 或者說,我在想方法模板,它有它保持在編譯時綁定的優勢: temp

    5熱度

    2回答

    我需要打開MS Word文件(.doc)並提取其組成文件('[1] CompObj','WordDocument'等)。像7-zip這樣的東西可以用來手動做到這一點,但我需要以編程方式做到這一點。 我收集了一個Word文檔是一個OLE容器(所以爲什麼7-ZIP可以用來查看其內容),但我不能工作如何(用C++): 打開OLE容器 提取每個組成文件並將其保存到磁盤 我發現一對夫婦(如here)OLE自

    7熱度

    8回答

    查看STL容器的成員函數時,出現了一個奇怪的想法。爲什麼像std::vector<T>::push_back(T)這樣的函數沒有(可選)返回值(迭代器或者甚至是對附加對象的引用)?我知道std::string函數像insert和erase返回迭代器,但這是顯而易見的原因。我認爲它通常會保存經常在這些函數調用之後的第二行代碼。 我相信C的設計師++有一個很好的理由,請賜教:) 更新:我這裏有包括現實

    1熱度

    2回答

    我目前正在學習C#在學習期間,我正在寫一個小型電影數據庫應用程序。我知道在數據庫中保存圖片(等)並不好,尤其是在添加相當大的電影封面時。但我不希望這些文件只能保存在文件夾中,因爲如果越來越多的電影被添加到列表中,這會造成混亂。 有誰知道一種方式來存儲文件在某種容器文件(如covers.xxx)。然後,該容器包含一個大文件中的所有封面,然後可以使用地址或名稱檢索這些文件。 謝謝:)

    1熱度

    4回答

    說,我得到了 Set<DerivedClass*> set1; 我得到了 Set<BaseClass*> set2; 我如何做到這一點? Set<BaseClass*> set3 = set1.substract(set2); //static cast!

    1熱度

    1回答

    下面的代碼:http://paste.pocoo.org/show/238093/ 我的主要問題,現在是: 是37號線該方案的主要要點?它是否只計算一次,然後打印結果?例如:self.start + key*self.step與start=1, key=4, step=2 [打印9] 這裏變量'值'實際上在哪裏起作用?第39行。 不擔心程序的「例外」部分。我非常明白它在做什麼。 最後,你真的沒有回

    4熱度

    2回答

    我正在尋找一些合適的2D元素容器。我想要的是能夠遍歷容器的每個元素,例如BOOST_FOREACH,我也希望能夠構建我的容器的子視圖(切片/子範圍),並且也可能遍歷它們。 現在我正在使用boost::numeric::ublas::matrix用於這些目的,但是,它對我來說看起來並不是一個好的解決方案,因爲它是BLAS矩陣,雖然它表現得非常好,就像一個普通的2d元素容器(自定義unbounded/

    1熱度

    2回答

    我想澄清一下C++標準,特別是它在第20.1.3節中說(我的解釋)「對於T類和T類的一個實例,稱爲x,T(x)必須等價於x」for該類使用標準容器。 我找不到'等效'的定義。這是否意味着我必須將operator==定義爲我班的成員,以便T(x) == x返回true?

    2熱度

    1回答

    是否有任何理由,ctype方面功能(is,scan_is,scan_not只支持普通字符指針,而不是基於迭代器的容器,如std :: string甚至std :: vector ... 那麼可以寫: const ctype<char>& myctype = use_facet<std::ctype<char> >(locale("")); string foo_str = "hi there h

    4熱度

    5回答

    與this question類似,但使用對象而不是指針。 如果我有下面的代碼 Foo f; vector<Foo> vect; vect.push_back(f); vect.erase(vect.begin()); 哪裏我的對象去了?刪除調用它嗎?如果別人持有一個指針呢?這是內存泄漏嗎?