2016-03-27 22 views
2

Formda (+ 1, 3, 3) bulunan bir vektör var. Bu vektörün "1-> 2-> 3" şeklinde olmasını istiyorum. Herkes bana bu bilgiyi bu dizeye nasıl dönüştürebilir?Belirli bir türdeki dizgiye vektör nasıl dönüştürebilir

Bu kodu denedim ancak kısıtlaması itoa() yöntemini veya to_str kullanamıyorum.

string stringify(vector<int> v) 
{ 
    string s = ""; 
    for(int i=0;i<v.size()-1;i++){ 
     s = itoa(v[i]); 
     s = s + "->" 
    } 
    s = s+v[i]; 
    cout<<s; 
    return s; 
} 
+1

sen ne denedim gösterin. Ve sonra, belirtilen bazı sorunlarınız varsa size yardımcı oluruz. – songyuanyao

+0

Rakamları itoa() işlevini kullanarak dizeye dönüştürdüm ve her birinden sonra "->" ekledim, ancak çalışmaz. Başka herhangi bir şekilde takdir edilecektir çünkü yolumun çok zorluğu var. –

+1

Kodunuzu ve çıktınızı göndermelisiniz lütfen. – jrsmolley

cevap

4

Sen std::stringstream kullanabilirsiniz:

string stringify(const vector<int>& v) 
{ 
    stringstream ss; 
    for (size_t i = 0; i < v.size(); i++) { 
     if (i != 0) ss << "->"; 
     ss << v[i]; 
    } 

    return ss.str(); 
} 

LIVE

BTW1: Sen vector kopyasını önlemek için, referans ile geçmenin değeriyle geçen parametre türünü değiştirebilir.
BTW2: stringify modelini, genel olarak kullanılabilecek bir şablon işlevi haline getirebilirsiniz. Örneğin.

template <typename T> 
string stringify(const vector<T>& v) 
1

ben c yaptım, bu sizin için yararlı olup olmadığını bakmak:

#include <stdio.h> 
    #include <stdlib.h> 
    #define SIZE 2 

    void stringify(char*); 

    int main() 
    { 
     char v = {1,2,3}; 
     stringify(v); 

     printf("\n\n"); 
     getchar(); 
     return 0; 
    } 

    void stringify(char v[]) 
    { 
     char s[20]=" "; 
     char aux[20] = ""; 

     for(int i=0;i <= SIZE;i++) 
     { 
      if(i < SIZE) 
       sprintf(s, "v[%d] -> ", &v[i]); 
      else 
       sprintf(s, "v[%d]", &v[i]); 

      printf("", strcat(aux,s)); 


     } 
     printf("\n%s", aux); 
    } 

Şimdi dizi aux formatı ile tüm çıktısını içerir.

çıkışı:

İlgili konular