[]

iota-2 ve template...

(git: 78766)

öncelikle dün iota'nın ne olduğunu anladım fakat kullanımında bir sıkıntı yaşıyorum.

örneğin;

template<class X> void myFunction() {
X c;
vector<X> final(10);
cout<<"Enter character>> "<<endl;
cin>>c;
iota(final.begin(), final.end(), c);
for(int i=0; i<final.size();i++)
cout<<final[i]<<" ";

}

burada amaç kullanıcıdan alınan türü bilinmeyen(int ,char) herhangi bir karakteri alıp vektöre sırayla yazdırmasını sağlamak. Fakat sorun şu ki burda template kullanmama rağmen kullanıcı sadece integer girildiğinde işlemi yapıyor. Örneğin karakter girdiğinde vektöre girilen karakteri atamıyor, rastgele sayılar veriyor. Hala anlamış değilim bunun sebebini çözebilen varsa beni bir aydınlatsın.

teşekkürler

 
Bu fonksiyonu nasıl çağırıyorsunuz hata almadan?

Class içinde tanımlayınca bu fonksiyonu bende çalışıyor ayrıca.
  • lex  (17.06.09 13:26:17 ~ 13:42:57) 
aslında çağırırken sorun oluyor, evet fakat herhangi bir sayı gönderirsem çalışıyor. Burda sade haliyle yazdım aslında, fonksiyon kullanıcıdan değer alıyor, fakat sorun o değil şimdilik, sorun iota fonksiyonun çalışmaması filan da değil, sorun karakterleri almaması sadece sayıları alması.


  • ocanal  (17.06.09 19:01:42) 
#include <iostream>
#include <algorithm>
#include <iterator>
#include <algo.h>

using namespace std;


template<class X>
class deneme {

public:
void myFunction() {
vector<X> final(10);
X c;
cout<<"Enter character>> "<<endl;
cin>>c;
iota(final.begin(), final.end(), c);
for(int i=0; i<final.size();i++)
cout<<final[i]<<" ";
}

};


int main(void) {
deneme <char>a;
a.myFunction();

return (0);
}


Bu kod çalışmakta bende, cygwin altında; char olarak increment etmekte yani.
  • lex  (17.06.09 22:22:43) 
@lex

ama bu sefer de sayılarda olmuyor, sadece 1 den 9'a kadar olan sayıları sıralayabiliyor. Örneğin 11 girince sadece ilk basamak sayılarını alıyor, yine 1,2,3,4....,9 şeklinde sıralıyor.

anladığım kadarıyla senin yazdığında her girilen şeyi karakter sıralamasına bakarak alıyor,benim istediğim kullanıcı int girmişse onluk sisteme bakarak sayıları sıralasın, eğer karakter girerse bu sefer karakter sıralamasına baksın. Burada yapamaya çalıştığım şey kullanıcıya ne tür değişken gireceğini sormadan kendim algılayıp bunu yaptırmak. Fakat hala yapabilmiş değilim.
  • ocanal  (18.06.09 01:15:19 ~ 10:52:04) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.