30 примера Ц++ вектора

30 Primera C Vektora



У Ц++, Вецтор је једнодимензионална структура података која се динамички повећава на основу захтева. Организација података (убацивање/модификација/брисање) се може ефикасно урадити у овој структури података. Његове апликације укључују следеће:

  1. Представљање математичких вектора у научним и инжењерским апликацијама
  2. Редови, стекови се могу имплементирати помоћу ове структуре података итд.

Већина уобичајених ЦРУД операција и функција које се односе на ову структуру података детаљно се разматрају у сценарију са синтаксом и исечцима кода.







Тема садржаја:

  1. Уметните елемент у вектор
  2. Уметните више елемената у вектор
  3. Приступите елементима из вектора
  4. Ажурирајте елемент у вектору
  5. Уклоните одређени елемент из вектора
  6. Уклоните све елементе из вектора
  7. Унион оф Вецторс
  8. Пресек вектора
  9. Проверите да ли је вектор празан или не
  10. Пређите вектором користећи Цонст_Итератор
  11. Пређите вектором користећи Реверсе_Итератор
  12. Гурните елементе у вектор
  13. Искочите елементе из вектора
  14. Замените векторе
  15. Узми први елемент из вектора
  16. Узми последњи елемент из вектора
  17. Додели нове вредности вектору
  18. Проширите вектор користећи Емплаце()
  19. Проширите вектор користећи Емплаце_Бацк()
  20. Максимални елемент вектора
  21. Минимални елемент вектора
  22. Збир елемената у вектору
  23. Множење два вектора по елементима
  24. Тачкасти производ два вектора
  25. Претворите скуп у вектор
  26. Уклоните дуплиране елементе
  27. Претворите вектор у скуп
  28. Уклоните празне низове
  29. Напишите вектор у текстуалну датотеку
  30. Направите вектор из текстуалне датотеке

Уметните елемент у вектор

Тхе стд::вецтор::инсерт() функција у Ц++ СТЛ се користи за уметање елемената на одређену позицију.



Синтакса:

вектор. уметнути ( позиција, елемент ) ;

Хајде да искористимо ову функцију и проследимо прву позицију као параметар који одређује позицију где елемент треба да се убаци и обезбедимо елемент као други параметар.



Функција бегин() се овде може користити за враћање итератора који указује на први елемент улазног вектора. Додавањем позиције овој функцији, елемент се убацује на ту позицију.





Хајде да креирамо вектор „студент_намес“ типа стринг и убацимо два низа на прву и другу позицију, један за другим, користећи функцију инсерт().

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Иницијализација вектора - имена ученика

вектор < низ > имена_ученика ;

цоут << „Постојећи вектор: ' ;

за ( ауто и : имена_ученика ) цоут << и << ендл ;

// Убаците 'Сраван Кумар' на прву позицију

имена_ученика. уметнути ( имена_ученика. започети ( ) + 0 , 'Шраван Кумар' ) ;

// Убаците 'Сраван Кумар' на другу позицију

имена_ученика. уметнути ( имена_ученика. започети ( ) + 1 , 'Лалитха' ) ;

цоут << „Коначни вектор: ' ;

за ( ауто ј : имена_ученика ) цоут << ј << ендл ;

}

Излаз:

Раније је вектор „имена ученика“ био празан. Након уметања, вектор садржи два елемента.



Уметните више елемената у вектор

Користимо исту функцију која је стд::вецтор::инсерт() у овом сценарију. Али морамо да проследимо додатне/различите параметре истој функцији да бисмо убацили више елемената у вектор.

Сценарио 1: Уметање једног елемента више пута

У овом сценарију, исти елемент додајемо више пута.

Синтакса:

вектор. уметнути ( положај, величина, елемент ) ;

Да бисмо то урадили, потребно је да проследимо величину као други параметар функцији инсерт(). Укупан број параметара који се прослеђују овој функцији је три.

овде:

  1. Параметар положаја одређује позицију елемента који ће бити уметнут. Ако је величина већа од 1, индекс почетне позиције ће бити позиција.
  2. Параметар величине одређује колико пута се елемент треба уметнути.
  3. Параметар елемента узима елемент који треба уметнути у вектор.

Размотрите вектор „имена ученика“ са два низа. Уметните 'Лаваниа' жице пет пута на другу позицију.

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Иницијализација вектора - имена ученика

вектор < низ > имена_ученика { 'Шраван Кумар' , 'Лалитха' } ;

цоут << „Постојећи вектор: ' ;

за ( ауто и : имена_ученика ) цоут << и << ендл ;

// Уметните 'Лаваниа' на другу позицију 5 пута

имена_ученика. уметнути ( имена_ученика. започети ( ) + 1 , 5 , 'Лаваниа' ) ;

цоут << ' Коначни вектор: ' ;

за ( ауто ј : имена_ученика ) цоут << ј << ендл ;

}

Излаз:

У постојећем вектору, „Сраван Кумар“ је на првој позицији, а „Лалитха“ је на другој позицији. Након што је пет пута убацила „Лаваниа” (са друге на шесту позицију), „Лалитха” се померила на седму позицију (последњу).

Сценарио 2: Уметање више елемената

У овом сценарију додајемо различите елементе одједном из другог вектора. Овде такође користимо исту функцију, али ће се синтакса и параметри променити.

Синтакса:

вектор. уметнути ( позиција, први_итератор, други_итератор ) ;

Да бисмо то урадили, потребно је да проследимо величину као други параметар функцији инсерт(). Укупан број параметара који се прослеђују овој функцији је три.

овде:

  1. Параметар положаја одређује позицију елемента који ће бити уметнут.
  2. „фирст_итератор“ специфицира почетну позицију са које се елементи убацују (у суштини, коришћењем функције бегин() враћа се итератор који указује на први елемент који је присутан у контејнеру).
  3. „сецонд_итератор“ специфицира крајњу позицију до које ће се елементи уметнути (у суштини, коришћењем енд() функције, враћа се итератор који показује поред последње тачке која је присутна у контејнеру).

Направите два вектора, „маркс1“ и „маркс2“, целобројног типа. Убаците све елементе који су присутни у вектору „маркс2“ на прву позицију вектора „маркс1“.

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Иницијализација вектора - ознаке1

вектор < инт > маркс1 { 100 , 89 , 90 , 78 , 98 } ;

цоут << „Први вектор: ' ;

за ( ауто и : маркс1 ) цоут << и << ендл ;

// Иницијализација вектора - маркс2

вектор < инт > маркс2 { 56 , Четири, пет , 65 } ;

цоут << „Други вектор: ' ;

за ( ауто ј : маркс2 ) цоут << ј << ендл ;

маркс1. уметнути ( започети ( маркс1 ) , започети ( маркс2 ) , крај ( маркс2 ) ) ;



// Коначни вектор

цоут << „Први-Финални вектор: ' ;

за ( ауто Икс : маркс1 )

цоут << Икс << ' ' ;

}

Излаз:

Први вектор (ознаке1) садржи пет елемената, а други вектор (ознаке2) три елемента. Проследили смо параметре бегин (маркс1), бегин(маркс2), енд(маркс2) функцији „инсерт“ тако да се сви елементи који су присутни у другом вектору понављају и убацују у први вектор на почетку. Дакле, први вектор садржи осам елемената.

Приступите елементима из вектора

1. Коришћење [] оператора

У неким сценаријима, можда ћете имати захтев да вратите само одређене елементе из вектора. Враћање свих елемената није потребно. Дакле, да би се вратили само одређени елементи на основу индекса, користе се оператор индекса и функције ат().

Синтакса:

вектор [ индек_поситион ]

У Ц++, индексирање почиње од 0 за било коју структуру података. Ако елемент не постоји, враћа се празан (Нема грешке или се појављује упозорење).

Размотрите вектор „производа“ са пет ставки. Приступите свим елементима један по један користећи позицију индекса.

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - производи са 5 стрингова

вектор < низ > производи { 'сапун' , 'шампон' , 'уље' , 'воће' , 'поврће' } ;

//Приступ елементима из производа

цоут << 'Први елемент:' << производи [ 0 ] << ендл ;

цоут << 'Други елемент:' << производи [ 1 ] << ендл ;

цоут << 'Трећи елемент:' << производи [ 2 ] << ендл ;

цоут << 'Четврти елемент:' << производи [ 3 ] << ендл ;

цоут << 'Пети елемент: ' << производи [ 4 ] << ендл ;



// Покушајте да приступите 9. елементу

цоут << 'Девети елемент:' << производи [ 8 ] << ендл ;

}

Излаз:

Нема елемента на индексу 8. Дакле, враћено је празно.

2. Коришћење функције Ат().

Ат() је функција члана која је слична претходном случају употребе, али враћа изузетак „стд::оут_оф_ранге“ када јој се пружи индекс ван опсега.

Синтакса:

вектор. ат ( индек_поситион )

Морамо да проследимо позицију индекса овој функцији.

Размотрите вектор „производа“ са пет ставки. Приступите свим елементима један по један користећи позицију индекса и покушајте да приступите елементу који је присутан на 9. позицији.

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - производи са 5 стрингова

вектор < низ > производи { 'сапун' , 'шампон' , 'уље' , 'воће' , 'поврће' } ;

//Приступ елементима из производа

цоут << 'Први елемент:' << производи. ат ( 0 ) << ендл ;

цоут << 'Други елемент:' << производи. ат ( 1 ) << ендл ;

цоут << 'Трећи елемент:' << производи. ат ( 2 ) << ендл ;

цоут << 'Четврти елемент:' << производи. ат ( 3 ) << ендл ;

цоут << 'Пети елемент: ' << производи. ат ( 4 ) << ендл ;



//Приступ елементима који нису у вектору

цоут << 'Девети елемент:' << производи. ат ( 8 ) << ендл ;

}

Излаз:

Дошло је до грешке при приступу 9. елементу:

прекинути позван након избацивања инстанце 'стд::оут_оф_ранге'

Шта ( ) : вектор :: _М_ранге_цхецк : __н ( која је 8 ) >= ово - > величина ( ) ( која је 5 )

Ажурирајте елемент у вектору

1. Коришћење [] оператора

Користећи позицију индекса, можемо ажурирати елемент у вектору. Оператор [] заузима индексну позицију елемента који треба да се ажурира. Нови елемент ће бити додељен овом оператору.

Синтакса:

Вецтор [ индек_поситион ] = Елемент

Размотрите вектор „студент_маркс“ са пет вредности. Ажурирајте елементе присутне на индексима 1 и 3.

#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - студент_маркс

вектор < инт > студент_маркс { 98 , 78 , 90 , 67 , 89 } ;

цоут << 'Постојеће ознаке: ' << ендл ;

за ( инт итр : студент_маркс )

цоут << итр << ендл ;

// Ажурирајте елемент на индексу-3 са 100

студент_маркс [ 3 ] = 100 ;

// Ажурирај елемент на индексу-1 са 60

студент_маркс [ 1 ] = 60 ;

цоут << „Коначне оцене:“ << ендл ;

за ( инт итр : студент_маркс )

цоут << итр << ендл ;

}

Излаз:

Видимо да коначни вектор држи елементе ажурирања на индексима 1 и 3.

2. Коришћење функције Ат().

Слично оператору индекса, ат() је у основи функција члана која ажурира вредност на основу индекса у итератору. Ако индекс који је наведен унутар ове функције не постоји, избацује се изузетак „стд::оут_оф_ранге“.

вектор. ат ( индек_поситион ) = Елемент

Размотрите вектор „производа“ са пет ставки. Ажурирајте све елементе присутне у вектору другим елементима.

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - производи са 5 стрингова

вектор < низ > производи { 'сапун' , 'шампон' , 'уље' , 'воће' , 'поврће' } ;

цоут << 'Постојећи производи: ' << ендл ;

за ( стринг итр : производи )

цоут << итр << ендл ;

//Ажурирање свих стрингова

производи. ат ( 0 ) = 'торта' ;

производи. ат ( 1 ) = 'чоколада' ;

производи. ат ( 2 ) = 'воће' ;

производи. ат ( 3 ) = 'Лук' ;

производи. ат ( 4 ) = 'Безалкохолна пића' ;



цоут << ' Финални производи: ' << ендл ;

за ( стринг итр : производи )

цоут << итр << ендл ;

}

Излаз:

Уклоните одређени елемент из вектора

У Ц++, стд::вецтор::ерасе() функција се користи за уклањање одређеног елемента/опсега елемената из вектора. Елементи се уклањају на основу позиција итератора.

Синтакса:

вектор. обрисати ( позиција итератора )

Хајде да видимо синтаксу за уклањање одређеног елемента из вектора. Можемо користити функције бегин() или енд() да бисмо добили позицију елемента који је присутан у вектору који треба уклонити.

Размотрите вектор „производа“ са пет ставки.

  1. Уклоните трећи елемент тако што ћете навести итератор бегин(). Бегин() указује на први елемент у вектору. Ако овој функцији додамо два, она указује на трећи елемент.
  2. Уклоните последњи елемент тако што ћете навести енд() итератор. Енд() указује на последњи елемент у вектору.
#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - производи са 5 стрингова

вектор < низ > производи { 'сапун' , 'шампон' , 'уље' , 'воће' , 'поврће' } ;

цоут << 'Постојећи производи: ' << ендл ;

за ( стринг итр : производи )

цоут << итр << ендл ;



// Уклони 3. елемент

производи. обрисати ( производи. започети ( ) + 2 ) ;

цоут << ' Након уклањања 3. елемента: ' ;

за ( стринг итр : производи )

цоут << итр << ендл ;

// Уклони последњи елемент

производи. обрисати ( производи. крај ( ) ) ;

цоут << ' Након уклањања последњег елемента: ' ;

за ( стринг итр : производи )

цоут << итр << ендл ;

}

Излаз:

Сада постоје само три елемента („сапун“, „шампон“, „воће“) која постоје у вектору „производа“.

Уклоните све елементе из вектора

Сценарио 1: Уклоните низ елемената из вектора

Хајде да користимо функцију стд::вецтор::ерасе() да уклонимо више елемената у опсегу.

Синтакса:

вектор. обрисати ( итератор први, итератор последњи )

Два итератора (бегин() указује на први елемент и енд() указује на функције последњег елемента) се користе за спецификацију опсега.

Размотрите вектор „производа“ са пет ставки и уклоните све елементе са друге позиције. Да би се ово постигло, први итератор је почетак (производи)+1 који указује на други елемент, а други итератор је крај (производи).

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - производи са 5 стрингова

вектор < низ > производи { 'сапун' , 'шампон' , 'уље' , 'воће' , 'поврће' } ;

цоут << 'Постојећи производи: ' << ендл ;

за ( стринг итр : производи )

цоут << итр << ендл ;



// Уклоните све елементе са друге позиције

производи. обрисати ( започети ( производи ) + 1 ,крај ( производи ) ) ;

цоут << ' Финални производи: ' ;

за ( стринг итр : производи )

цоут << итр << ендл ;

}

Излаз:

Сада, постоји само један елемент („сапун“) који је присутан у вектору „производи“.

Сценарио 2: Уклоните све елементе из вектора

Хајде да користимо стд::вецтор::цлеар() функција за уклањање свих елемената из вектора.

Синтакса:

вектор. јасно ( )

Ниједан параметри се не прослеђују овој функцији.

Размотрите исти вектор који је коришћен у првом сценарију и уклоните све елементе помоћу функције цлеар().

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - производи са 5 стрингова

вектор < низ > производи { 'сапун' , 'шампон' , 'уље' , 'воће' , 'поврће' } ;

цоут << 'Постојећи производи: ' << ендл ;

за ( стринг итр : производи )

цоут << итр << ендл ;



// Уклоните све елементе из производа

производи. јасно ( ) ;

цоут << ' Финални производи: ' ;

за ( стринг итр : производи )

цоут << итр << ендл ;

}

Излаз:

Видимо да у вектору „производи“ нема елемената.

Унион оф Вецторс

Могуће је извршити операцију УНИОН на векторима помоћу функције стд::сет_унион(). Унион враћа јединствене елементе из вектора занемарујући дуплиране елементе. Морамо да проследимо оба итератора овој функцији. Заједно са овим, излазни итератор мора бити прослеђен који чува резултат који враћају оба итератора.

Синтакса:

сет_унион ( ИнпутИтератор1 фирст1, ИнпутИтератор1 ласт1, ИнпутИтератор2 фирст2, ИнпутИтератор2 ласт2, ОутпутИтератор рес ) ;

овде:

  1. „Фирст1“ указује на први елемент првог итератора (вектора).
  2. „Ласт1“ указује на последњи елемент првог итератора (вектора).
  3. „Фист2“ указује на први елемент другог итератора (вектора).
  4. „Ласт2“ указује на последњи елемент другог итератора (вектора).

Направите два вектора – „субјецтс1“ и „субјецтс2“ – типа цео број.

  1. Сортирајте два вектора помоћу функције сорт() преношењем итератора.
  2. Креирајте излазни вектор (итератор).
  3. Пронађите унију ова два вектора помоћу функције стд::сет_унион(). Користите бегин() као први итератор и енд() као последњи итератор.
  4. Итерирајте излазни вектор да бисте приказали елементе које враћа функција.
#инцлуде <алгоритам>

#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - маркс1

вектор < инт > маркс1 = { 100 , 90 , 80 , 70 , 60 } ;



// Креирај вектор - маркс2

вектор < инт > маркс2 = { 80 , 90 , 60 , 70 , 100 } ;

// Сортирај оба вектора

врста ( маркс1. започети ( ) , маркс1. крај ( ) ) ;

врста ( маркс2. започети ( ) , маркс2. крај ( ) ) ;

вектор < инт > оутпутВецтор ( маркс1. величина ( ) + маркс2. величина ( ) ) ;

вектор < инт > :: итератор и, с ;

и = сет_унион ( маркс1. започети ( ) , маркс1. крај ( ) ,

маркс2. започети ( ) ,маркс2. крај ( ) ,

оутпутВецтор. започети ( ) ) ;

цоут << ' маркс1 У маркс2: ' ;

за ( с = оутпутВецтор. започети ( ) ; с ! = и ; ++ с )

цоут << * с << ' ' << ' ' ;

}

Излаз:

Постоји само пет јединствених елемената у оба вектора (субјект1 и субјект2).

Пресек вектора

Проналажење пресека два вектора може бити могуће помоћу функције стд::сет_интерсецтион(). Интерсецтион враћа елементе који су присутни у оба вектора.

Синтакса:

сет_раскрсница ( ИнпутИтератор1 фирст1, ИнпутИтератор1 ласт1, ИнпутИтератор2 фирст2, ИнпутИтератор2 ласт2, ОутпутИтератор рес ) ;

Параметри који се прослеђују функцији сет_унион() такође могу бити прослеђени овој функцији сет_интерсецтион().

Направите два вектора – „субјецтс1“ и „субјецтс2“ – типа цео број.

  1. Сортирајте два вектора помоћу функције сорт() преношењем итератора.
  2. Креирајте излазни вектор (итератор).
  3. Пронађите пресек ова два вектора помоћу функције стд::сет_интерсецтион(). Користите бегин() као први итератор и енд() као последњи итератор.
  4. Итерирајте излазни вектор да бисте приказали елементе које враћа функција.
#инцлуде <алгоритам>

#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - маркс1

вектор < инт > маркс1 = { 100 , 10 , 80 , 40 , 60 } ;



// Креирај вектор - маркс2

вектор < инт > маркс2 = { педесет , 90 , 60 , 10 , 100 } ;

// Сортирај оба вектора

врста ( маркс1. започети ( ) , маркс1. крај ( ) ) ;

врста ( маркс2. започети ( ) , маркс2. крај ( ) ) ;

вектор < инт > оутпутВецтор ( маркс1. величина ( ) + маркс2. величина ( ) ) ;

вектор < инт > :: итератор и, с ;

и = сет_раскрсница ( маркс1. започети ( ) , маркс1. крај ( ) ,

маркс2. започети ( ) ,маркс2. крај ( ) ,

оутпутВецтор. започети ( ) ) ;

цоут << ' ознаке1 ∩ ознаке2: ' ;

за ( с = оутпутВецтор. започети ( ) ; с ! = и ; ++ с )

цоут << * с << ' ' << ' ' ;

}

Излаз:

У оба вектора (субјект1 и субјект2) постоје само три елемента.

Проверите да ли је вектор празан или не

Пре рада на векторима, важно је проверити да ли је вектор празан или не. Такође је добра пракса у софтверским пројектима да се провери да ли је вектор празан или не пре извођења операција као што су ЦРУД операције итд.

1. Коришћење Стд::вецтор::емпти()

Ова функција враћа 1 ако је вектор празан (не садржи ниједан елемент). У супротном, враћа се 0. Ниједан параметар се не прослеђује овој функцији.

2. Коришћењем Стд::вецтор::сизе()

Функција стд::вецтор::сизе() враћа цео број који представља укупан број елемената који су присутни у вектору.

Направите два вектора – „колеџ1“ и „колеџ2“. „Колеџ1“ садржи пет елемената, а „колеџ2“ је празан. Примените обе функције на оба вектора и проверите излаз.

#инцлуде <алгоритам>

#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - колеџ1

вектор < низ > колеџ1 = { 'колеџ-А' , 'колеџ-Б' , 'колеџ-Ц' , 'колеџ-Д' , 'колеџ-Е' } ;

// Креирај вектор - колеџ2

вектор < низ > колеџ2 ;

// празно()

цоут << колеџ1. празан ( ) << ендл ;

цоут << колеџ2. празан ( ) << ендл ;

// сизе()

цоут << колеџ1. величина ( ) << ендл ;

цоут << колеџ2. величина ( ) << ендл ;

}

Излаз:

Функција емпти() враћа 0 за „колеџ1” и 1 за „колеџ2”. Функција сизе() враћа пет за „колеџ1“ и 0 за „колеџ2“.

Пређите вектором користећи Цонст_Итератор

Када радите на Ц++ контејнерима као што су скупови, вектори, итд., могуће је понављати све елементе који су присутни у контејнеру без њиховог модификовања. Тхе цонст_итератор је један од итератора који постижу овај сценарио. Цбегин() (показује на први елемент у вектору) и ценд() (указује на последњи елемент у вектору) су две функције које обезбеђује сваки контејнер који се користи за враћање константног итератора на почетак и крај контејнер. Док понављамо вектор, можемо да користимо ове две функције.

  1. Хајде да направимо вектор под називом „одељења“ са пет низова.
  2. Објавите цонст_итератор – цтр типа <стринг>.
  3. Итерирајте по одељењима користећи претходни итератор користећи петљу „фор“ и прикажите га.
#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - одељења

вектор < низ > одељења = { 'Продаја' , 'Услуга' ,

'ХР' , 'ТО' , 'други' } ;



вектор < низ > :: цонст_итератор цтр ;

// Итерација по одељењима користећи цонст_итератор - цтр.

за ( цтр = одељења. цбегин ( ) ; цтр ! = одељења. неколико ( ) ; цтр ++ ) {

цоут << * цтр << ендл ;

}

}

Излаз:

Пређите вектором користећи Реверсе_Итератор

Тхе реверсе_итератор је такође итератор који је сличан цонст_итератору али враћа елементе обрнуто. рбегин() (показује на последњи елемент у вектору) и ренд() (указује на први елемент у вектору) су две функције које обезбеђује сваки контејнер који се користи за враћање константног итератора на крај и почетак контејнер.

  1. Хајде да направимо вектор под називом „одељења“ са пет низова.
  2. Објавите реверсе_итератор – ртр типа <стринг>.
  3. Итерирајте по одељењима користећи претходни итератор користећи петљу „фор“ и прикажите га.
#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - одељења

вектор < низ > одељења = { 'Продаја' , 'Услуга' ,

'ХР' , 'ТО' , 'други' } ;



вектор < низ > :: реверсе_итератор ртр ;

// Итерација по одељењима користећи реверсе_итератор - ртр.

за ( ртр = одељења. рбегин ( ) ; ртр ! = одељења. чини ( ) ; ртр ++ ) {

цоут << * ртр << ендл ;

}

}

Излаз:

Гурните елементе у вектор

Гурање или додавање елемената у вектор је једносмерно уметање које се може урадити помоћу вецтор::пусх_бацк() функција.

Синтакса:

вектор. потисне ( елемент )

Потребан је елемент који се гурне у вектор као параметар.

Хајде да креирамо празан вектор под називом „одељења“ са пет низова и гурамо два низа један за другим користећи функцију пусх_бацк().

#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Иницијализација вектора - одељења

вектор < низ > одељења ;

цоут << „Стварни одељења:“ << ендл ;

за ( ауто итр = одељења. започети ( ) ; итр ! = одељења. крај ( ) ; ++ итр )

цоут << * итр << ендл ;

// Притисните 'Продаја'

одељења. потисне ( 'Продаја' ) ;

// Гурни га'

одељења. потисне ( 'ТО' ) ;

цоут << ' Завршна одељења:' << ендл ;

за ( ауто итр = одељења. започети ( ) ; итр ! = одељења. крај ( ) ; ++ итр )

цоут << * итр << ендл ;

}

Излаз:

Прво, гурамо „Продају“. Након тога, „ИТ“ се гура у вектор. Сада, вектор „департмана“ садржи два елемента.

Искочите елементе из вектора

Ако желите да избришете последњу ставку која је присутна у вектору, користећи вектор::поп_бацк() функција је најбољи приступ. Брише последњи елемент који је присутан у вектору.

Синтакса:

вектор. поп_бацк ( )

За ову функцију није потребан никакав параметар. Показује недефинисано понашање ако покушамо да избришемо последњи елемент из празног вектора.

Хајде да направимо празан вектор под називом „одељења“ са пет низова и избришемо последњи елемент користећи претходну функцију. Прикажи вектор у оба случаја.

#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Иницијализација вектора - одељења

вектор < низ > одељења = { 'Продаја' , 'ТО' , 'Услуга' , 'Маркетинг' , 'ХР' } ;

цоут << „Стварни одељења:“ << ендл ;

за ( ауто итр = одељења. започети ( ) ; итр ! = одељења. крај ( ) ; ++ итр )

цоут << * итр << ендл ;



// Избришите последњи елемент

одељења. поп_бацк ( ) ;

цоут << ' Завршна одељења:' << ендл ;

за ( ауто итр = одељења. започети ( ) ; итр ! = одељења. крај ( ) ; ++ итр )

цоут << * итр << ендл ;

}

Излаз:

„ХР“ је последњи елемент који је присутан у вектору „департмана“. Дакле, уклања се из вектора и коначни вектор садржи „Продаја“, „ИТ“, „Услуга“ и „Маркетинг“.

Замените векторе

Тхе вектор::свап() функција у Ц++ СТЛ се користи за замену свих елемената који су присутни у два вектора.

Синтакса:

први_вектор. свап ( сецонд_вецтор )

Не узима у обзир величину вектора, али вектори треба да буду истог типа (грешка се јавља ако су типови вектора различити).

Хајде да направимо два вектора - 'воће' и 'поврће' - типа низа различитих величина. Замените сваки од њих и прикажите векторе у оба случаја.

#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Иницијализација вектора - плодови

вектор < низ > воће = { 'јабука' , 'манго' } ;

цоут << „Право воће:“ << ендл ;

за ( ауто итр = воће. започети ( ) ; итр ! = воће. крај ( ) ; ++ итр )

цоут << * итр << ендл ;



// Иницијализација вектора - поврће

вектор < низ > поврће = { 'кромпир' , 'парадајз' , 'Брињал' } ;

цоут << ' Право поврће:' << ендл ;

за ( ауто итр = поврће. започети ( ) ; итр ! = поврће. крај ( ) ; ++ итр )

цоут << * итр << ендл ;



// Замени елементе у оба вектора

воће. свап ( поврће ) ;

цоут << ' Воће након замене:' << ендл ;

за ( ауто итр = воће. започети ( ) ; итр ! = воће. крај ( ) ; ++ итр )

цоут << * итр << ендл ;

цоут << ' Поврће након замене:' << ендл ;

за ( ауто итр = поврће. започети ( ) ; итр ! = поврће. крај ( ) ; ++ итр )

цоут << * итр << ендл ;

}

Излаз:

Раније, вектор „воће” садржи два елемента, а вектор „поврће” три елемента. Након замене, вектор „воће” садржи три елемента, а вектор „поврће” садржи два елемента.

Узми први елемент из вектора

У неким случајевима, захтев је да се врати само први елемент из вектора. Функција вецтор::фронт() у Ц++ СТЛ преузима само први елемент из вектора.

Синтакса:

вектор. фронт ( )

Ова функција неће узети ниједан параметар. Ако је вектор празан, јавља се грешка.

Хајде да направимо два вектора – „воће“ и „поврће“ – типа стринг и покушамо да преузмемо први елемент одвојено од два вектора.

#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - воће са 2 елемента

вектор < низ > воће = { 'јабука' , 'манго' } ;

// Враћа први елемент

цоут << воће. фронт ( ) << ендл ;



// Иницијализација вектора - поврће

вектор < низ > поврће ;

// Покушајте да вратите први елемент

цоут << поврће. фронт ( ) ;

}

Излаз:

„Јабука“ је први елемент који је присутан у вектору „воће“. Дакле, враћено је. Али грешка се јавља када покушамо да преузмемо први елемент из вектора „поврће“ пошто је празан.

Узми последњи елемент из вектора

Функција вецтор::енд() у Ц++ СТЛ преузима само последњи елемент из вектора.

Синтакса:

вектор. назад ( )

Ова функција неће узети ниједан параметар. Ако је вектор празан, јавља се грешка.

Хајде да направимо два вектора – „воће“ и „поврће“ – типа стринг и покушамо да преузмемо последњи елемент одвојено од два вектора.

#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - воће са 2 елемента

вектор < низ > воће = { 'јабука' , 'манго' } ;

// Дохвати последњи елемент

цоут << воће. назад ( ) << ендл ;



// Иницијализација вектора - поврће

вектор < низ > поврће ;

// Покушајте да преузмете последњи елемент

цоут << поврће. назад ( ) ;

}

Излаз:

„Манго“ је последњи елемент који је присутан у вектору „воћа“. Дакле, враћено је. Али грешка се јавља када покушамо да преузмемо последњи елемент из вектора „поврће“ пошто је празан.

Додели нове вредности вектору

У неким сценаријима, ако желите да ажурирате све вредности новом вредношћу или да креирате вектор са истим вредностима, коришћење функције вецтор::ассигн() је најбољи приступ. Користећи ову функцију, можемо:

  1. Направите вектор са свим сличним елементима
  2. Измените постојећи вектор истим елементом

Синтакса:

вектор. доделити ( величина, вредност )

За ову функцију потребна су два параметра.

овде:

  1. Величина одређује број елемената који ће бити додељени.
  2. Вредност одређује елемент који ће бити додељен.

Хајде да креирамо вектор под називом „маркс1“ са пет вредности и ажурирамо овај вектор са четири елемента тако да сви елементи у ажурираном вектору буду једнаки 20.

#инцлуде <алгоритам>

#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - маркс1

вектор < инт > маркс1 = { 100 , 90 , 80 , 70 , 60 } ;

цоут << „Стварни вектор:“ << ендл ;

за ( инт и = 0 ; и < маркс1. величина ( ) ; и ++ )

цоут << маркс1 [ и ] << ендл ;



маркс1. доделити ( 4 , двадесет ) ;



цоут << ' Ажурирани вектор:' << ендл ;

за ( инт и = 0 ; и < маркс1. величина ( ) ; и ++ )

цоут << маркс1 [ и ] << ендл ;

}

Излаз:

Раније, вектор садржи пет различитих елемената. Сада, садржи само четири елемента и сви су једнаки 20.

Проширите вектор користећи Емплаце()

Већ знамо да се нови елементи динамички убацују на било коју позицију у вектору. Могуће је коришћењем функције вецтор::емплаце(). Хајде да брзо погледамо синтаксу и параметре које прихвата ова функција.

Синтакса:

вектор. локација ( цонст_итератор позиција, елемент )

Два обавезна параметра се прослеђују овој функцији.

овде:

  1. Први параметар заузима позицију тако да можемо уметнути елемент на било коју позицију. Позицију можемо добити помоћу функције бегин() или енд() итератора.
  2. Други параметар је елемент који се убацује у вектор.

Размотрите вектор „хемикалија“ са два елемента.

  1. Уметните „Манган“ на прву позицију – почни (хемикалије)
  2. Уметните „бакар“ на последњу позицију – крај (хемикалије)
  3. Убаците „Сумпор“ на трећу позицију – почетак(хемикалије)+2
#инцлуде <алгоритам>

#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - хемикалије

вектор < низ > хемикалије = { 'кисеоник' , 'ЦО' } ;

цоут << „Стварне хемикалије:“ << ендл ;

за ( инт и = 0 ; и < хемикалије. величина ( ) ; и ++ )

цоут << хемикалије [ и ] << ендл ;



// Убаци елемент на прву позицију

хемикалије. локација ( започети ( хемикалије ) , 'манган' ) ;



// Убацити елемент на последњу позицију

хемикалије. локација ( крај ( хемикалије ) , 'Бакар' ) ;



// Убацити елемент на трећу позицију

хемикалије. локација ( започети ( хемикалије ) + 2 , 'сумпор' ) ;



цоут << ' Коначне хемикалије:' << ендл ;

за ( инт и = 0 ; и < хемикалије. величина ( ) ; и ++ )

цоут << хемикалије [ и ] << ендл ;

}

Излаз:

Сада, коначни вектор садржи пет елемената (наведено на следећем снимку екрана).

Проширите вектор користећи Емплаце_Бацк()

Елемент се може додати (додавање на крају вектора) што се може урадити помоћу вецтор::емплаце_бацк() функција.

Синтакса:

вектор. емплаце_бацк ( елемент )

Обавезно је проследити елемент који се додаје вектору као параметар.

Хајде да додамо два елемента један за другим користећи функцију емплаце_бацк().

#инцлуде <алгоритам>

#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - хемикалије

вектор < низ > хемикалије = { 'кисеоник' , 'ЦО' } ;

цоут << „Стварне хемикалије:“ << ендл ;

за ( инт и = 0 ; и < хемикалије. величина ( ) ; и ++ )

цоут << хемикалије [ и ] << ендл ;



// Убацити манган на крај вектора

хемикалије. емплаце_бацк ( 'манган' ) ;



// Убацити манган на крај вектора

хемикалије. емплаце_бацк ( 'Бакар' ) ;





цоут << ' Коначне хемикалије:' << ендл ;

за ( инт и = 0 ; и < хемикалије. величина ( ) ; и ++ )

цоут << хемикалије [ и ] << ендл ;

}

Излаз:

Сада, коначни вектор садржи четири елемента након додавања „мангана“ и „бакра“.

Максимални елемент вектора

  1. Направите вектор са неким елементима.
  2. Да бисте пронашли максимални елемент који је присутан у вектору, користите функцију *мак_елемент() која прихвата два итератора као аргументе. Ова два параметра делују као опсег и максимални елемент се враћа у оквиру предвиђеног опсега. Почетна позиција је бегин(), а последња позиција енд().
* мак_елемент ( фирст_Индек, ласт_Индек )

Хајде да размотримо вектор под називом „итем_цостс“ који садржи пет вредности целобројног типа и враћа максимални елемент.

#инцлуде <вектор>

#инцлуде <иостреам>

#инцлуде <алгоритам>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - итем_цостс

вектор < инт > итем_цост = { 8900 , 5677 , 200 , 1000 , 2300 } ;



цоут << „Цена артикала: ' ;

за ( инт и = 0 ; и < итем_цост. величина ( ) ; и ++ )

цоут << итем_цост [ и ] << ендл ;



// Враћа максимални елемент из горњег вектора - итем_цостс

цоут << ' Максимална цена: ' << * мак_елемент ( започети ( итем_цост ) ,крај ( итем_цост ) ) ;

}

Излаз:

Овде, 8900 је максимални елемент међу свим елементима који су присутни у вектору ”итем_цостс”.

Минимални елемент вектора

  1. Направите вектор са неким елементима.
  2. Да бисте пронашли минимални елемент који је присутан у вектору, користите функцију *мин_елемент() која прихвата два итератора као аргументе. Ова два параметра делују као опсег и минимални елемент (мањи од свих осталих елемената) се враћа унутар предвиђеног опсега. Почетна позиција је бегин(), а последња позиција енд().
* мин_елемент ( фирст_Индек, ласт_Индек )

Користите исти вектор који је креиран да бисте пронашли максимални елемент и пронашли минимални елемент помоћу функције *мин_елемент().

#инцлуде <вектор>

#инцлуде <иостреам>

#инцлуде <алгоритам>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - итем_цостс

вектор < инт > итем_цост = { 8900 , 5677 , 200 , 1000 , 2300 } ;



цоут << „Цена артикала: ' ;

за ( инт и = 0 ; и < итем_цост. величина ( ) ; и ++ )

цоут << итем_цост [ и ] << ендл ;



// Враћа минимални елемент из горњег вектора - итем_цостс

цоут << ' Минимална цена: ' << * мин_елемент ( започети ( итем_цост ) ,крај ( итем_цост ) ) ;

}

Излаз:

Овде је 200 минимални елемент међу свим елементима који су присутни у вектору „итем_цостс“.

Збир елемената у вектору

Да бисте вратили збир свих елемената који су присутни у вектору, акумулирати() користи се функција у Ц++ СТЛ. Прихвата три параметра. Први параметар узима први индекс који представља почетни елемент у опсегу (наведите итератор бегин()), а други параметар узима последњи индекс који представља завршни елемент у опсегу (наведите енд() итератор). На крају, треба да пренесемо почетну вредност збира (у нашем случају, то је 0).

акумулирати ( први_индекс, последњи_индекс, почетни_вал ) ;

Направите вектор под називом „итем_цостс“ са пет елемената целобројног типа и израчунајте збир.

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - итем_цостс

вектор < инт > итем_цост = { 8900 , 5677 , 200 , 1000 , 2300 } ;



цоут << „Цена артикала: ' ;

за ( инт и = 0 ; и < итем_цост. величина ( ) ; и ++ )

цоут << итем_цост [ и ] << ендл ;



// Враћа збир свих елемената у горњем вектору - итем_цостс

цоут << ' Укупни трошкови: ' << акумулирати ( започети ( итем_цост ) ,крај ( итем_цост ) , 0 ) ;

}

Излаз:

Збир 8900, 5677, 200, 1000, 2300 је 18077.

Множење два вектора по елементима

  1. Направите два вектора са типом нумериц и два вектора морају бити исте величине (укупан број елемената присутних у првом вектору = укупан број елемената присутних у другом вектору).
  2. Декларишете нови вектор и користите за петљу , изврши операцију множења на два елемента у свакој итерацији и сачува вредност у креираном вектору помоћу функције пусх_бацк().
  3. за ( инт итр = 0 ; и < фирст_вец. величина ( ) ; итр ++ )

    {

    резултат_вектор. потисне ( фирст_вец [ итр ] * сец_тхинг [ итр ] ) ;

    }
  4. Прикажите елементе који су присутни у резултујућем вектору тако што ћете га понављати.

Направите вектор под називом „итем_цостс“ са пет елемената целобројног типа и израчунајте збир.

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Креирајте два вектора - продуцтс1 и продуцтс2 са по 5 елемената

вектор < инт > производи1 = { 10 , двадесет , 30 , 40 , педесет } ;

вектор < инт > производи2 = { педесет , 40 , 30 , 70 , 60 } ;



вектор < инт > резултати_производи ;



// Извршити множење по елементима

за ( инт и = 0 ; и < производи1. величина ( ) ; и ++ ) {

резултати_производи. потисне ( производи1 [ и ] * производи2 [ и ] ) ;

}



// Приказ резултујућег вектора

цоут << „Векторско множење: ' ;

за ( инт рес : резултати_производи )

цоут << рес << ендл ;

}

Излаз:

Итерација - 1 : 10 * педесет => 500

Итерација - 2 : двадесет * 40 => 800

Итерација - 3 : 30 * 30 => 900

Итерација - 4 : 40 * 70 => 2800

Итерација - 5 : педесет * 60 => 3000

Тачкасти производ два вектора

У случају Ц++ вектора, тачкасти производ је дефинисан као „збир производа одговарајућих уноса два низа вектора“.

Синтакса:

унутрашњи производ ( Вектор1 први, Вектор1 последњи, Вектор2 први, Инитиал_Вал )

Користите функцију иннер_продуцт() да вратите тачкасти производ. Ова функција узима четири потребна параметра.

овде:

  1. Први параметар се односи на итератор који указује на почетак првог вектора (наведите помоћу функције бегин()).
  2. Други параметар се односи на итератор који указује на крај првог вектора (наведите помоћу функције енд()).
  3. Трећи параметар се односи на итератор који указује на почетак другог вектора (наведите помоћу функције бегин()).
  4. Почетна вредност се мора пренети као последњи параметар који је цео број за акумулацију тачкастог производа.

Користите исти програм који је креиран за множење два вектора и користите функцију иннср_продуцт() да бисте пронашли тачкасти производ два вектора.

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Креирајте два вектора - продуцтс1 и продуцтс2 са по 5 елемената

вектор < инт > производи1 = { 10 , двадесет , 30 , 40 , педесет } ;

вектор < инт > производи2 = { педесет , 40 , 30 , 70 , 60 } ;



// Приказ резултујућег вектора

цоут << „Тачкасти производ производа1 и производа2:“ ;

цоут << унутрашњи производ ( започети ( производи1 ) ,крај ( производи1 ) ,започети ( производи2 ) , 0 ) ;

}

Излаз:

( 10 * педесет ) + ( двадесет * 40 ) + ( 30 * 30 ) + ( 40 * 70 ) + ( педесет * 60 )

=> 500 + 800 + 900 + 2800 + 3000

=> 8000

Претворите скуп у вектор

Постоји много начина да конвертујете скуп у вектор тако што ћете све елементе који су подигнути у скупу пренети у вектор. Најбољи и најједноставнији начин је коришћење функције стд::цопи().

Синтакса

стд :: копија ( соурцеИтератор први, соурцеИтератор последњи, дестинатионИтератор први )

Користити стд::цопи() функција која убацује елементе из скупа у вектор. Потребна су три параметра.

овде:

  1. Први параметар се односи на изворни итератор који указује на први елемент у итератору. Овде је сет изворни итератор који је наведен помоћу функције бегин().
  2. Слично томе, други параметар указује на последњи елемент (енд() функција).
  3. Трећи параметар се односи на одредишни итератор који указује на први елемент (наведен помоћу функције бегин())  у итератору.

Хајде да направимо скуп са пет ученика и копирамо све елементе у вектор користећи претходну функцију.

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Креирај скуп – ученици са 5 елемената

комплет < низ > студенти = { 'Сраван' , 'боби' , 'Мадху' , 'Мегхана' , 'Лаваниа' } ;

цоут << 'Комплет: ' ;

за ( стринг и : студенти )

цоут << и << ендл ;



// Креирај вектор - величина студент_вцоф једнака величини скупа

вектор < низ > студент_вц ( студенти. величина ( ) ) ;



// Уметање елемената из скупа - ученика у вектор - студент_вц.

копија ( студенти. започети ( ) , студенти. крај ( ) , студент_вц. започети ( ) ) ;



цоут << ' вектор: ' ;

за ( стринг и : студент_вц )

цоут << и << ендл ;

}

Излаз:

Сада се сви елементи који су присутни у скупу „Студенти“ копирају у вектор „студентс_вц“.

Уклоните дуплиране елементе

  1. Прво, треба да сортирамо елементе у вектору тако да сви дуплирани елементи буду један уз другог користећи стд::сорт() функција.
  2. стд :: врста ( Вектор први, вектор последњи ) ;
  3. Користите функцију стд::уникуе() тако да ће дуплирани елементи бити изабрани. У исто време, користите функцију ерасе() да уклоните дупликате које враћа функција стд::уникуе(). Редослед елемената се може променити у коначном вектору.
  4. вектор. обрисати ( стд :: јединствени ( Вектор први, вектор последњи ) , Вектор последњи ) )

Креирајте вектор „ученици“ са 10 елемената и вратите вектор уклањањем дупликата.

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор – ученици са 10 елемената

вектор < низ > студенти = { 'Сраван' , 'боби' , 'Мадху' , 'Мегхана' , 'Лаваниа' ,

'Сраван' , 'боби' , 'Мадху' , 'Мегхана' , 'Лаваниа' } ;

цоут << 'Студенти: ' ;

за ( стринг и : студенти )

цоут << и << ' ' ;



// Сортирај све елементе у вектору ученика.

врста ( започети ( студенти ) , крај ( студенти ) ) ;



// Користите функцију уникуе() да уклоните дупликате помоћу функције ерасе().

студенти. обрисати ( јединствени ( започети ( студенти ) , крај ( студенти ) ) , крај ( студенти ) ) ;



цоут << ' Јединствени студенти: ' ;

за ( ауто итр = цбегин ( студенти ) ; итр ! = неколико ( студенти ) ; ++ итр ) {

цоут << * итр << ' ' ;

}

}

Излаз:

Сада су сви елементи јединствени у вектору.

Претворите вектор у скуп

Сет не дозвољава дуплирање елемената. Ако куцате да бисте убацили вектор у скуп са дупликатима, они ће бити занемарени. Користимо исту функцију стд::цопи() која је коришћена у претходном сценарију која је конвертовала скуп у вектор.

У овом сценарију:

  1. Први параметар узима вектор као изворни итератор који је специфициран помоћу функције бегин().
  2. Други параметар узима вектор као изворни итератор који је специфициран помоћу функције енд().
  3. Проследите функцију стд::инсертер() која се користи за аутоматско преписивање/копирање елемената на одређеној позицији у скупу обезбеђујући скуп и итератор који указују на крај скупа као параметре.

Хајде да направимо вектор са 10 целих бројева и копирамо елементе у скуп.

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Креирај скуп - обележава са 10 вредности

вектор < инт > оцене = { 12 , 3. 4 , 56 , 78 , 65 , 78 , 90 , 90 , 78 , 3. 4 } ;

цоут << „Вектор: ' ;

за ( инт и : оцене )

цоут << и << ' ' ;



// Креирај скуп - маркс_сет величине једнаке величини вектора

комплет < инт > маркс_сет ;



// Уметање елемената из скупа - ученика у вектор - студент_вц.

копија ( започети ( оцене ) ,крај ( оцене ) , инсертер ( маркс_сет,енд ( маркс_сет ) ) ) ;



цоут << ' Комплет: ' ;

за ( инт и : маркс_сет )

цоут << и << ' ' ;

}

Излаз:

Постојећи вектор под називом „ознаке“ има 10 вредности. Након копирања у скуп 'маркс_сет', он садржи само шест елемената јер су остала четири елемента дуплирана.

Уклоните празне низове

Нема употребе празних низова који су присутни у вектору. Добра је пракса уклонити празне низове који су присутни у вектору. Хајде да видимо како да уклонимо празне стрингове из Ц++ вектора:

  1. Итерирајте вектор користећи петљу „фор“.
  2. У свакој итерацији, проверите да ли је елемент празан (“”) или не користећи оператор “==” са ат() функцијом члана.
  3. Користећи функцију стд::ерасе(), уклоните празне стрингове након провере претходног услова.
  4. Поновите корак 2 и корак 3 до краја вектора.

Хајде да креирамо вектор „компаније“ са 10 стрингова. Међу њима је пет празних и ми их уклањамо применом претходног приступа.

#инцлуде <иостреам>

#инцлуде <вектор>

Користећи именског простора стд ;

главни ( ) {



вектор < низ > компаније { 'Компанија-А' , '' , 'Компанија-Б' ,

'' , 'Компанија-Ц' , '' , 'Компанија-Д' , '' , '' , '' } ;



// Понављајте компаније

// и уклоните празне елементе користећи ерасе()

за ( инт итр = 1 ; итр < компаније. величина ( ) ; ++ итр ) {

ако ( компаније. ат ( итр ) == '' ) {

компаније. обрисати ( компаније. започети ( ) + итр ) ;

-- итр ;

}
}

// Приказ вектора


за ( ауто & и : компаније ) {

цоут << и << ендл ;

}

}

Излаз:

Сада, вектор „компаније“ садржи непразне низове.

Напишите вектор у текстуалну датотеку

Хајде да разговарамо о томе како записати све елементе који су присутни у вектору у датотеку користећи векторске индексе користећи фстреам .

  1. Гурните неке елементе у њега помоћу функције пусх_бацк након иницијализације вектора.
  2. Користите функцију опен() из библиотеке „фстреам“ са режимом као ван.
  3. Пређите сваки елемент који је присутан у вектору користећи индексе у „фор“ петљи и упишите сваки елемент у дату датотеку.
  4. На крају, затворите датотеку.

Хајде да применимо претходни приступ тако што ћемо покренути Ц++ код.

#инцлуде <вектор>

#инцлуде <стринг>

#инцлуде <иостреам>

#инцлуде <фстреам>

Користећи именског простора стд ;

главни ( )

{

// Креирај вектор - в_дата

// и гурнути два елемента у њега.

вектор < низ > в_дата ;

в_дата. потисне ( 'Добродошли' ) ;

в_дата. потисне ( 'на ЛинукХинт' ) ;

поток ф ;



// Отворите датотеку

ф. отворен ( 'вриттен_филе.ткт' ,иос_басе :: оут ) ;

// Итерирај сваки елемент вектора и упиши један по један у датотеку.

за ( инт и = 0 ; и < в_дата. величина ( ) ; и ++ )

{

ф << в_дата [ и ] << ендл ;

}

// Затворите датотеку

ф. Близу ( ) ;

}

Излаз:

Вектор „в_дата“ садржи два елемента и креира се датотека на путањи на којој се програм извршава са елементима који су присутни у вектору.

Направите вектор из текстуалне датотеке

Научили смо како да елементе који су присутни у вектору запишемо у текстуалну датотеку. Ево, хајде да направимо вектор од садржаја који је присутан у текстуалној датотеци.

  1. Направите „ ифстреам” променљива која се користи за читање информација из текстуалне датотеке у којој креирамо вектор из датотеке.
  2. Направите празан вектор за чување садржаја датотеке и користите празну стринг променљиву као ознаку да проверите крај датотеке.
  3. Прочитајте следећи ред из датотеке док не дође до краја (у суштини користећи петљу „вхиле“). Користите функцију пусх_бацк() да прочитате следећи ред и гурнете га у вектор.
  4. Прикажите линију која је присутна у линији одвојено да бисте видели елементе који су присутни у вектору на конзоли.

Хајде да применимо претходни приступ тако што ћемо покренути Ц++ код. Хајде да размотримо датотеку „дата.ткт“ са следећим садржајем. Овде је име вектора „в_дата“.

#инцлуде <битс/стдц++.х>

Користећи именског простора стд ;

главни ( )

{

// Отворите текстуалну датотеку - подаци
ифстреам датотеку ( 'дата.ткт' ) ;

// Креирај вектор - в_дата типа - стринг


вектор < низ > в_дата ;

танги су били ;

// Прочитајте следећи ред из дата.ткт
// док не дође до краја.


док ( фајл >> био ) {

// Прочитајте следећи ред и гурните у в_дата

в_дата. потисне ( био ) ;

}



// Прикажи ред који је присутан у линији одвојено.

копија ( в_дата. започети ( ) , в_дата. крај ( ) , остреам_итератор < низ > ( цоут , ' ' ) ) ;

}

Излаз:

Можемо видети да „в_дата“ садржи пет елемената који су дошли из датотеке.

Закључак

У овом дугачком чланку истражили смо све могуће примере који се користе у апликацијама у реалном времену које се односе на векторе у програмском језику Ц++. Сваки пример је објашњен са синтаксом, параметрима и примером са излазом. Коментари се додају у сваки код да бисте добили јасно разумевање кода.