Dosazeni do pole – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Dosazeni do pole – C / C++ – Fórum – Programujte.comDosazeni do pole – C / C++ – Fórum – Programujte.com

 

.
~ Anonymní uživatel
38 příspěvků
13. 1. 2014   #1
-
0
-

Ahoj, nevite jak timhle zpusobem: int pole[10] = {5,4,......}; - resp pomoci sloz. zavorek postupne zadavat hodnoty, zadat hodnoty do pole ktere sem uz pred tim inicializoval(doufam ze to je spravnej termin):

int pole[10];                      //tohle bohuzel nefacha
pole[] = {........}

nevim jak nato, protoze nechci vypisovat pole[1] = ...; pole[2] = .....;..... nejde to obejit pres retezce protoze dosazuju na sobe nazavisly cisla a dosazovat pri inicializaci taky nemuzu.

dk

Nahlásit jako SPAM
IP: 109.80.24.–
KIIV
~ Moderátor
+43
God of flame
13. 1. 2014   #2
-
0
-

to co zminujes je inicializacni list.. nefunguje to jindy nez v inicializaci... musel bys leda vytvorit dalsi pole s tou inicializaci a pak ho cyklem zkopirovat... ale nechapu moc princip prepisovani konstantama.. k cemu to muze byt

Nahlásit jako SPAM
IP: 94.113.93.–
Program vždy dělá to co naprogramujete, ne to co chcete...
.
~ Anonymní uživatel
38 příspěvků
13. 1. 2014   #3
-
0
-
Nahlásit jako SPAM
IP: 109.80.24.–
vitamin+8
Grafoman
14. 1. 2014   #4
-
0
-

#1 .
Slo by to takto:

//obycajne polia
#include <iostream>
#include <initializer_list>
#include <cassert>
#include <algorithm>

template<class T, size_t S>
auto arrayInit(T (&array)[S], std::initializer_list<T>&& ini)->decltype(array)&{
    assert(S >= ini.size());
    std::copy(ini.begin(), ini.end(), std::begin(array));
    return array;
}

int main(){
    int array[4];
    arrayInit(array, {1, 2, 3, 4});
    
    for(int i : array)std::cout << i << '\n';
    
    return 0;
}

alebo cez std::array:

#include <iostream>
#include <initializer_list>
#include <cassert>
#include <algorithm>
#include <array>

template<class T, size_t S>
std::array<T, S>& operator|=(std::array<T, S>& array, std::initializer_list<T>&& ini){
    assert(S >= ini.size());
    std::copy(ini.begin(), ini.end(), std::begin(array));
    return array;
}

int main(){
    std::array<int, 4> array;
    array |= {1, 2, 3, 4};
    
    for(int i : array)std::cout << i << '\n';

    return 0;
}
Nahlásit jako SPAM
IP: 195.28.77.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 68 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý