Yazılım | Programlama C++ (cout) sorun

rupsidupsi

Yeni üye
13 Ocak 2018
41
0
İyi günler! 145 sırada bir sorunla karşılaşıyorum, yardımcı olursanız sevinirim. Kırmızı ile işaretledim.


Kod:
#pragma warning(disable: 4018)
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <vector>
#include <functional>
#include <iterator>
using namespace std;
class CTVSet
{
    string m_strProducer;
    int m_iSize;
public:
    CTVSet() {}
    CTVSet(int iSize, const string& strProd = "")
    {
        m_strProducer = strProd;
        m_iSize = iSize;
    }
    CTVSet(const CTVSet& e)
    {
        m_strProducer = e.m_strProducer;
        m_iSize = e.m_iSize;
    }
    ~CTVSet() {}
    const string& GetProducer() const { return m_strProducer; }
    const int GetSize() const { return m_iSize; }
    **** Output(ostream& toStream) const
    {
        toStream << "Company: " << GetProducer() << "Size: " << GetSize() << endl;
    }
    **** Input(istream& fromStream)
    {
        fromStream >> m_strProducer >> m_iSize;
    }
    friend ostream& operator<<(ostream&, const CTVSet&);
    friend istream& operator >> (istream& fromStream, CTVSet& stud);
    CTVSet& operator=(const CTVSet& st)
    {
        m_strProducer = st.m_strProducer;
        m_iSize = st.m_iSize;
        return *this;
    }
    bool operator<(const CTVSet& e)
        const {
        return m_iSize < e.m_iSize;
    }
    bool operator == (const CTVSet& e)
        const {
        return m_iSize == e.m_iSize;
    }
};

ostream& operator<<(ostream& toStream, const CTVSet& set)
{
    set.Output(toStream);
    return toStream;
}
istream& operator>>(istream& fromStream, CTVSet& set)
{
    set.Input(fromStream);
    return fromStream;
}
class CTVSetShop
{
    string m_strProducer;
    vector<CTVSet> m_vSales;
public:
    const string& GetProducer() const { return m_strProducer; }
    CTVSetShop(vector<CTVSet>& v)
    {
        m_vSales = v;
    }
    CTVSetShop() {}
    **** readIn(ifstream iStream);
    **** writeTo(ostream oStream);
    **** maxSalesByProducer(string& strProducer, int& iNum);
    **** maxSalesBySize(int& iSize, int& iNum);
};
int lessProducer(const CTVSet& a, const CTVSet& b)
{
    return a.GetProducer() < b.GetProducer();
}
int eqProducer(const CTVSet& a, const CTVSet& b)
{
    return a.GetProducer() == b.GetProducer();
}
class eqProducerF
{
public:
    eqProducerF(CTVSetShop& init)
    {
        comparable = init;
    }
    bool operator()(const CTVSetShop& x)
        const {
        return comparable.GetProducer() == x.GetProducer();
    }
private:
    CTVSetShop comparable;
};

**** CTVSetShop::maxSalesBySize(int& iSize, int& iNum) {
    iSize = 0; iNum = 0;
    vector <CTVSet> uniqSizes;
    sort(m_vSales.begin(), m_vSales.end());// , ptr_fun(bySize));
    unique_copy(m_vSales.begin(), m_vSales.end(), back_inserter(uniqSizes));
    for (int i = 0; i < uniqSizes.size(); i++) {
        int iCurrent = count(m_vSales.begin(), m_vSales.end(), uniqSizes[i]);
        iNum = ((iCurrent > iNum) ?
            (iSize = uniqSizes[i].GetSize(), iCurrent) : iNum);
    }
}

**** CTVSetShop::maxSalesByProducer(string& strProducer, int& iNum) {
    vector<string> remaining;
    strProducer = "N/A"; iNum = 0;
    vector <CTVSetShop> uniqProducers;
    sort(m_vSales.begin(), m_vSales.end(), ptr_fun(lessProducer));
    unique_copy(m_vSales.begin(), m_vSales.end(), back_inserter(uniqProducers), eqProducer);
    for (int i = 0; i < uniqProducers.size(); i++) {
        int iCurrent = count_if(m_vSales.begin(), m_vSales.end(), eqProducerF(uniqProducers[i]));
        iNum = ((iCurrent > iNum) ?
            (strProducer = uniqProducers[i].GetProducer(), iCurrent) : iNum);
    }
}
**** CTVSetShop::readIn(ifstream ifile) {
    if (m_vSales.size()) {
        m_vSales.clear();
    }
    copy(istream_iterator<CTVSet>(ifile),
        istream_iterator<CTVSet>(),
        back_inserter(m_vSales));
}
**** CTVSetShop::writeTo(ostream oStream) {
    copy(m_vSales.begin(),
        m_vSales.end(),
        ostream_iterator<CTVSet>(oStream, "\n"));
}

int main() {
    CTVSetShop vectShopData;
    vectShopData.readIn(ifstream("file.txt"));
    [COLOR=Red][U]vectShopData.writeTo(cout);[/U][/COLOR]
    cout << "**********\n";
    string strProd;
    int iSize, iNum;
    vectShopData.maxSalesBySize(iSize, iNum);
    cout << "Max Sales by size (" << iSize << " " << iNum << ")\n";
    vectShopData.maxSalesByProducer(strProd, iNum);
    cout << "Max Sales by producer (" << strProd << " " << iNum << ")\n";
    return 0;
}
 
Moderatör tarafında düzenlendi:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.