Új hozzászólás Aktív témák
-
-
-
sghc_toma
senior tag
hm.. fura, nalam fordul.. itt vannak a diff-ek a pastebin-es kodhoz kepest:
diff Termekek.h Termekek_mine.h
158c158
< Product& operator<(Product& j1,Product& j2);
---
> bool compare(Product * j1, Product * j2);diff Termekek.cpp Termekek_mine.cpp
482c482
< sort(store.begin(),store.end());
---
> sort(store.begin(),store.end(), compare);
485c485
< bool operator<(Product& j1,Product& j2)
---
> bool QuickFrozen::compare(Product * j1, Product * j2)
487c487
< return strcmp(j1.get_name(),j2.get_name());
---
> return strcmp(j1->get_name(), j2->get_name()) < 0;ja, es a main fuggvenyed void visszateresi erteku.. ez nem okes, int-nek kene lennie.. nem is ertem, a cl miert nem szol erte (W4-gyel sem)..
-
sghc_toma
senior tag
a Termekek.h-ban van egy ilyen:
Product& operator<(Product& j1,Product& j2);
ez ugye nem OK, bool a helyes visszateresi ertek..meg egy ilyen:
return strcmp(j1.get_name(),j2.get_name());
ez nem jo, mert akkor igaz, ha nem egyenlo a ket nev, nem akkor, amikor az elso kisebb..
Es ami a fo problema: a vektorban ugye pointereket tarolsz, az operator< meg referenciakkal dolgozik, ez igy nem okes.. tehat kell egy osszehasonlito fv., ami valahogy igy nez ki:
bool compare(Product * p1, Product * p2)
{
return strcmp(p1->get_name(), p2->get_name()) < 0;
}ezt megadhatod harmadik parameternek a sort-nak..
remelem nem neztem el semmit (kicsit sietve futottam at a kodot, eppen beadandot irok)
-
sghc_toma
senior tag
ha irtal kisebb operatort, akkor nem kell harmadik parameter, mivel a sort alapbol azt hasznalja.. tehat pl. ennek igy mukodnie kell:
#include <vector>
#include <algorithm>
class Product
{
//...
int value;
public:
friend bool operator<(const Product & p1, const Product & p2);
}
bool operator<(const Product & p1, const Product & p2)
{
return p1.value < p2.value;
}
int main()
{
std::vector<Product> products;
//...
std::sort(products.begin(), products.end());
return 0;
} -
sghc_toma
senior tag
C++-ul:
#include <algorithm>
#include <string>
// ...
bool isPalindrom(std::string str)
{
str.erase(std::remove(str.begin(), str.end(), ' '), str.end());
transform(str.begin(), str.end(), str.begin(), ::tolower);
std::string reversed(str);
std::reverse_copy(str.begin(), str.end(), reversed.begin());
return !str.compare(reversed);
} -
sghc_toma
senior tag
válasz
Mr. Teddy #818 üzenetére
a nativ alkalmazasnak az a baja, hogy nem talalja a megfelelo verzioju c runtime-ot.. legegyszerubben ugy tudod megoldani, hogy statikusan linkeled a crt-t: [link]
arrol lovesem sincs, hogy a managed cucc miert nem megy.. biztosan ugyanaz a .Net framework van fent a ket gepen? -
-
sghc_toma
senior tag
válasz
Sk8erPeter #731 üzenetére
hmm, ezt az STL-dolgot beneztem, bocs.. figyelmetlenul olvastam el a feladatot
en a file-t reprezentalo osztalyba nem pakolnam bele a tail megvalositasat.. legyen neki megnyitas/bezaras metodusa, meg iteratorai.. szerintem a tail objektum kap egy file objektumot megkozelites jo; a file iteratorait hasznalva kenyelmesen megvalosithatod a tail osztalyt.. ez azert jobb, mintha beleraknad a file osztalyba, mert ha pl. kesobb kelleni fog a head parancs is, akkor nem kell megbolygatni a file osztalyt, eleg irni egy head-et..
-
sghc_toma
senior tag
válasz
Sk8erPeter #727 üzenetére
"Maga a fájl beolvasása legyen külön osztály, aminek a tagfüggvényeit örökli egy másik, pl. a Tail osztály?"
nem.. a feladatkiirasban benne van, hogy magat a szoveges allomanyt kell reprezentalnod egy objektummal.. pl. csinalsz egy osztalyt, aminek van egy std::vector<std::string> adattagja, es ebben tarolod a sorokat.. mondjuk a konstruktor kap parameterkent egy filenevet, megnyitja, beolvassa a file-t, es eltarolja a tartalmat a vektorban.. az operator<< lehet uj sor vektorba rakasa, az operator>> meg egy sor olvasasa.. operaor+ ket file osszefuzese, stb.. az iterator meg a sorokon megy vegig, tulajdonkeppen ugyanaz, mint a vektor iteratora.. igy a tail egesz egszeruen megvalosithato mondjuk az std::for_each-csel, vagy egy sima for ciklussal.."de jelen esetben nem igazán látom gyakorlati hasznát, itt nem kell randomszerűen tudni elérni elemeket, vagy gyorsan az elejére, majd a végére ugrani, vagy hasonló, mint a klasszikus iterátoroknál"
az iterator pont nem a random hozzaferesre lett kitalalva.. ahogy a neve is mutatja, arra valo, hogy egy kontener elemein vegiglepkedj.. -
sghc_toma
senior tag
Gyuri16: segiteni sajnos nem tudok, en is nemreg gondolkodtam azon, hogy jo lenne a Vim-et hasznalni IDE-kent, de nem volt tul sok idom foglalkozni vele.. az exVim-re guglizas kozben talaltam, feltettem, kiprobaltam egy projekten, de nem igazan melyedtem meg bele..
doc: nincs mit..
-
sghc_toma
senior tag
válasz
WonderCSabo #703 üzenetére
hmm.. milyen forditot hasznalsz? 4.4.3-as GCC-vel mukodik mindket megoldas.. esetleg egy forraskodreszletet be tudsz masolni ide (hatha mashol van a hiba)?
-
sghc_toma
senior tag
válasz
WonderCSabo #701 üzenetére
legjobb tudomasom szerint szep modszer nincs ra, de a clear + str("") kombonak mukodnie kellene.. az, hogy nem tudsz bele irni, mit jelent? hibat dob, vagy csak siman ures marad a stream?
esetleg meg megprobalhatod, hogy torlod az error flag-eket, es a put/get pointereket meg beallitod a stream elejere:stringstreamneve.clear();
stringstreamneve.seekp(0);
stringstreamneve.seekg(0);"Ha csak cleart használok, nem csinál semmit"
nem meglepo, a clear az error flag-eket allitja be...
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- exHWSW - Értünk mindenhez IS
- Jövedelem
- iPhone topik
- Újjászületés: szombattól új szerverkörnyezetben a PROHARDVER! lapcsalád
- OTP Bank topic
- BMW topik
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Mibe tegyem a megtakarításaimat?
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- További aktív témák...
- T14 Gen1 14" FHD IPS i5-10210U 16GB 256GB NVMe magyar vbill IR kam új akku gar
- VivoBook S M3402QA 14" 3K OLED Ryzen 5 5600H 16GB 512GB NVMe magyar vbill ujjlolv gar
- ASUS TUF Gaming F15 gamer laptop
- S. Mario PC! Hogy fusson a Super Mario! I5 14400F / RX 6900XT 16GB / 32GB DDR5 / 1TB SSD
- Motorola edge 40 neo - makulátlan, ár-érték bajnok
- HP EliteBook 840 G7 i5-10210U 16GB 256GB 14" 400nit 100% sRGB 1 év garancia
- GYÖNYÖRŰ iPhone 12 mini 256GB Blue -1 ÉV GARANCIA -Kártyafüggetlen, MS3625
- SzinteÚJ! HP Elitebook 860 G10 i7-1355U 16GB 512GB 16" FHD+ Gar.: 1 év
- Kezdő Gamer PC-Számítógép!Csere-Beszámítás! I5 6500 / RX580 8GB / 16GB DDR4 / 512 SSD
- HP ZBook Firefly 14 i7-1165G7 32GB 1000GB Nvidia Quadro T500 4GB 14" FHD 1 év garancia
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő