Wypisywanie zawartości obiektu klasy vector

0

Witam. Na studiach muszę wykonać projekt wykorzystując kontenery z biblioteki STL i potrzebuję jakiegoś prostego sposobu na wypisanie całej zawartości takiego kontenera za pomocą cout (o ile to możliwe)
próbuję to zrobić na dwa sposoby z czego, żaden nie działa

cout << Tor1.begin() << endl;
cout << Tor1 << endl;

tak wygląda deklaracja takiego konterena w moim kodzie:

vector<char> Tor1;
Tor1.push_back('G');

Na początek wpisałem tam jeden znak, jakikolwiek. Wiem, że jeśli kontener jest pusty(ma zero elementów) to nie można go wypisać.
Znam pojęcie klasy raczej średnio i może z tego powodu nie umiem wypisać zawartości kontenera, gdyby ktoś wiedział, to proszę o pomoc/podpowiedź jak to wykonać :)

2
for (const auto& element : Tor1)
    cout << element << endl;

//albo

copy(begin(Tor1), end(Tor1), ostream_iterator<char>(cout, "\n"));

A jeśli nie masz C++11, to

for (vector<char>::const_iterator it = Tor1.begin(); it != Tor1.end(); ++it)
    cout << *it << endl;

//albo

for (size_t i = 0; i < Tor1.size(); ++i)
    cout << Tor1[i] << endl;
0

Wiem, że można wypisać cały kontener w ten ostatni sposób jaki podał twonek.
Mój błąd, że tego nie napisałem, ale chciałbym, zrobić dokładniej coś takiego:

 cout << setw(45+4) << setfill('=') << Tor1[ << endl; 

Problemem jest to, żeby zawartość kontenera zastępowała tyle znaków '=' ile znajduje się w nim elementów.

2

czytam Twoj post (ostatni) piaty raz i nadal go nie rozumiem.

Napisz to bardziej zrozumiale

Albo mam lepszy pomysl

Zademonstruj jak to ma wygladac. Jaki ma byc input jaki output i +- co ma to przetwarzac.

Czyli np

Input: liczby calkowite odzielone przecinkiem
1,2,3,4,5,6,7,8,9,10

Proces:
Pomnozyc wszystkie liczby przez liczbe dwa

Output:
2,4,6,8,10,12,14,16,18,20

0

więc wchodzi zawsze jeden element po czym jest output

  1. input:
    B
Tor1.push_back('B');

output:

=========B
  1. input:
C

output:

========BC
  1. input:
A

output:

=======BCA
  1. input:
C

output:

======BCAC
  1. jakieś czyszczenie kontenera
 Tor1.clear();

output:

==========

dodanie znaczników <code class="none"> - @furious programming

0

Muszę na chwilę zostawić ten projekt. Ale jako że ten kontener zawiera w sobie chary, to zrobię coś na miarę moich możliwości. Napiszę funkcję, która zamienia zawartość tego kontenera na string.

A więc mój problem rozwiązałem taką oto funkcją:

 string Przygotowanie_Do_Wypisania(vector<char> vector){
	string napis;
	for(int i=vector.size(); i>0 ; i--){
		if(vector[i-1]=='\0'){
			napis = "=";
		}
		else	
			napis = napis + vector[i-1];
	}
	return napis;
}

Dzięki temu mogę skorzystać w pełni z operatora << oraz funkcji setfill() i setw()

cout << setw(41) << setfill('=')<<Przygotowanie_Do_Wypisania(Tor2)<< endl;

1 użytkowników online, w tym zalogowanych: 0, gości: 1