• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed stl funkcja iteratory

VPS Starter Arubacloud
0 głosów
100 wizyt
pytanie zadane 12 sierpnia 2019 w C i C++ przez niezalogowany
zamknięte 13 listopada 2019

cout<< mi wyświetla bledną wartość, w tej funkcji poniżej:

void aaa(p_im_iter p_row) {

/// **************************************
 

    m_iter col_b((p_row.first->second).begin());
    m_iter col_e((p_row.first->second).end());

    for(col_b;col_b!=col_e;col_b++){
        int a=col_b->first;
        std::cout<<a;
    }

///**************************************

}

A tu cały kod:

#include <iostream>

#include <stack>
#include <map>
#include <algorithm>

using s = std::stack<int>;
using m = std::map<int,int>;
using im= std::map<int,m>;

//std::map<int,std::map<int,int>>::iterator
using m_iter=m::iterator;
using im_iter=im::iterator;


using p_m_iter=std::pair<m_iter,m_iter>;
using p_im_iter = std::pair<im_iter,im_iter>;

void aaa(p_im_iter p_row) {

/// **************************************


    m_iter col_b((p_row.first->second).begin());
    m_iter col_e((p_row.first->second).end());

    for(col_b; col_b!=col_e; col_b++) {
        int a=col_b->first;
        std::cout<<a;
    }

///**************************************

}

using namespace std;

int main() {
    map<int,map<int,int>> row;

    im_iter row_b(row.begin());
    im_iter row_e(row.end());

    p_im_iter para(row_b,row_e);

    int a=0,b=0;

    while (cin.peek()!=10) {
        map<int,int> col;
        a=0,b=0;
        while (cin.peek()!=10) {
            cin>>a>>b;
            col[b]=a;
        }
        row[a]=col;
        cin.get();
    }

    for(auto x:row) {

        for (auto y:x.second)
            cout<<'('<<y.first<<','<<y.second<<')';
        cout<<endl;
    }
    aaa (para);

    cout << "Hello world!" << endl;
    return 0;
}

 

komentarz zamknięcia: najlepsza

1 odpowiedź

0 głosów
odpowiedź 12 sierpnia 2019 przez vector Dyskutant (9,200 p.)
wybrane 13 listopada 2019
 
Najlepsza

cout nic nie wyświetla 'błędnie', po prostu masz ub w kodzie.

im_iter row_b(row.begin());
im_iter row_e(row.end());
 
p_im_iter para(row_b,row_e);

przesuń za pętle aby stało bezpośrednio przed wywołaniem aaa(para),

poza tym

aaa(...) {
    // ...
    (p_row.first->second).begin()
    // ...
}

nie wiesz czy tutaj możesz zrobić .begin() np jak na wejściu będziesz odrazu miał endline to i tak wyrzuci.

komentarz 12 sierpnia 2019 przez niezalogowany
Chyba zbyt optymistycznie podszedłem do STL. Chciałem zastąpić, Tym tablicę wskaźników. Ale sobie ten temat odpuszczę. Szczególnie ze grafów musiał bym się uczyć od podstaw.

https://eduinf.waw.pl/inf/alg/001_search/0134.php

to wejście

1 2 1 3
2 3 2 6
3 4 3 7

a tu utworzona tablica tablic

<obecny wierzchołek, ale by łatwo było znaleźć sąsiada> (sąsiad, obecny wierzchołek)

<1>(2,1)(3,1)
<2>(3,2)(6,2)
<3>(4,3)(7,3)

Ale jak zwykle odpłynąłem od rzeczywistości.
komentarz 12 sierpnia 2019 przez niezalogowany

@vector,

Jak zakładałem wątek, to bardziej z nadzieją, że dowiem się czy jest możliwe / prawidłowe dostawanie się w taki sposób do danych będących "głębiej".  Czy takiej praktyki unikać jak ognia.Bo STL lubi pozesuwać swój obszar pamięci i chyba wskaźników z stl nie należny mieszać.

Po prostu już byłem gotów zrezygnować z tablic dynamicznych na rzecz STL, a tu taki kwiatek, Ze prostej tablicy wskaźników nie da się w prosty sposób zaimplementować.

I chodzi mi o tablicę wskaźników a nie tablice [][][], bo od tego się zaczeło drążenie tematu. Bo to chyba nie problem zrobić  coś takiego ***aaa, **aa, *a, element 

aaa->aa->a->element lub (aaa+5)->(aa+3)->(a+1000)->element

Podobne pytania

0 głosów
2 odpowiedzi 182 wizyt
pytanie zadane 7 listopada 2015 w C i C++ przez Marcin07 Nowicjusz (170 p.)
0 głosów
0 odpowiedzi 221 wizyt
pytanie zadane 18 sierpnia 2017 w JavaScript przez crova Użytkownik (940 p.)
0 głosów
1 odpowiedź 117 wizyt
pytanie zadane 1 kwietnia 2017 w C i C++ przez krzakurts Obywatel (1,470 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...