sortare vector cu ajutorul STL
Last Updated: Aug 01 2015 18:21, Started by
VladBtz
, Jul 29 2015 19:55
·
0
#1
Posted 29 July 2015 - 19:55
Trebuie sa folosesc STL ca sa incarc cu valori un vector si apoi sa il sortez si sa il afisez.
#include<iostream> using namespace std; vector<int> vec; int main() { int a,n; cin>>n; for(int i = 0; i < n; i++){ cin>>a; vec.push_back(a); } vector <int>::iterator begining=vec.begin(); vector <int>::iterator ending =vec.end(); sort(begining,ending); for(vector <int>::iterator itr=begining; itr!=ending ;++itr) cout<<*itr<<'\x0'; return 0; } pe linia cu vector<int> vec imi zice : expected constructor, destructor, or type conversion before '<' token si dupa alte vreo 13 erori care cred ca pornesc de la asta... |
#2
Posted 29 July 2015 - 20:08
<include vector> la inceput. Trebuie sa incluzi fisierul vector, pt. definitiile tipurilor(claselor) respective.
Poti folosi direct sort(vec.begin(), vec.end()). Nu mai trebuie sa declari si definesti obiectele begining si ending ... nu are sens. Edited by Rhesus, 29 July 2015 - 20:11. |
#3
Posted 29 July 2015 - 20:30
mai am o eroare: 'sort' was not declared in this scope|
edit: gata , merge . ai uitat sa zici de #include<algorithm> mersi frumos . Edited by VladBtz, 29 July 2015 - 20:33. |
#5
Posted 29 July 2015 - 20:46
ok , mersi ,eu ma uitam la asta si d-aia... [ https://www.youtube-nocookie.com/embed/ltBdTiRgSaw?feature=oembed - Pentru incarcare in pagina (embed) Click aici ]
bool myfunction (int i,int j) { return (i<j); } adica daca i <j rezulta 0 (true) si lasa in pace , iar daca nu e , e false si modifica? |
#6
Posted 29 July 2015 - 21:35
Adica daca i = 5 si j = 7, 5 < 7 (true) => functia va returna valoarea 1 (sau true) si 0 in caz contrar.
|
#7
Posted 29 July 2015 - 21:53
https://youtu.be/gxZJ5JNuWMY?t=4m12s la 4:11 zice ca se poate afisa si cu for(it : vec) dar cand fac asta imi zice ca it wasnt declared in this scope
|
#8
Posted 29 July 2015 - 22:35
Da-i lui it un tip de data (int, vector<ceva>::iterator, etc) sau lasa compilatorul sa ii gaseasca unul (auto).
Deci, for ( auto it : vec ) ar trebui sa functioneze. |
#10
Posted 30 July 2015 - 01:18
|
#11
Posted 30 July 2015 - 07:44
Intra la setari la compilator si bifeaza o casuta unde scrie ceva de c++11 (n-am codeblocks la indemana).
|
#12
Posted 30 July 2015 - 22:28
am pus auto in fata la it si tot nu merge , imi apare error: expected initializer before ':' token|
si cand pun fara imi zice ca it wasnt declared in this scope am rezolvat faza cu C++11 , am testat cu auto a=42; si merge ... #include<iostream> #include<vector> #include<algorithm> using namespace std; vector<int> vec; int main() { int a,n; cin>>n; for(int i = 0; i < n; i++){ cin>>a; vec.push_back(a); } sort(vec.begin(),vec.end()); for( it: vec) cout<<*itr<<'\x0'; return 0; } |
#14
Posted 31 July 2015 - 00:52
#18
Posted 01 August 2015 - 13:25
pe cpp.sh imi merge , deci cred ca e de la codeblocks . mie in codeblocks la setari nu imi apare Have g++ follow ....c++11 de bifat cum apare in tutoriale , asa ca am pus
-std=c++0x -U__STRICT_ANSI__ -std=gnu++0x -U__STRICT_ANSI__ in other options cum arata pe youtube. am facut testul cu auto a=42 pe care il aveau si aia care bifau Have ..C++11 si a mers . |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users