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

Pytanie - optional w c++

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
55 wizyt
pytanie zadane 5 dni temu w C i C++ przez Dani Użytkownik (650 p.)

Jak mając zwrotną funkcję optional vector zwrócić vector?

#include <iostream>
#include <vector>
#include <optional>
using namespace std;
optional<vector<int>> dp[1000];

optional<vector<int>> howSum(int targetSum, vector<int> numbers) {
    for (int i = 0; i <= targetSum; ++i) {
        dp[i] = nullopt;
    }
    return { 3,2 };
}

int main()
{
    std::cout << "Hello World!\n";
}

 

1 odpowiedź

+3 głosów
odpowiedź 5 dni temu przez adrian17 Ekspert (327,920 p.)
wybrane 5 dni temu przez Dani
 
Najlepsza

Jeszcze jedna klamra?

return {{3, 2}};

 

komentarz 5 dni temu przez Dani Użytkownik (650 p.)
Wiesz może jak przeiterować przez optional<vector<int>> ?
komentarz 5 dni temu przez adrian17 Ekspert (327,920 p.)
Traktuj optional jakby był niejako wskaźnikiem - musisz sprawdzić czy nie jest pusty (.has_value()) i wyciągnąć ze środka referencję do wartości albo operatorem *, albo z .value().
komentarz 5 dni temu przez Dani Użytkownik (650 p.)
Mógłbyś napisać przykładowo kod wyciągnięcia ze środka referencji, bo nie do końca rozumiem
1
komentarz 5 dni temu przez adrian17 Ekspert (327,920 p.)

no, zamiast

// vector<int> a;
for (int x : a) { cout << x; } 

To:

// optional<vector<int>> a;
if (a.has_value()) {
    for (int x : *a) { cout << x; } 
}

// albo

for (int x : a.value()) { cout << x; } 

 

komentarz 5 dni temu przez Dani Użytkownik (650 p.)
edycja 5 dni temu przez Dani
Dzięki wielkie, a czy jest możliwość dostania się do poszczególnego elementu? I także jak dodać jakąś wartość do optional<vecotr<int>>?
komentarz 5 dni temu przez adrian17 Ekspert (327,920 p.)

I także jak dodać jakąś wartość do optional<vecotr<int>>?

To cały czas jest vector<int>, tylko schowany za warstwą optionala. Indeksowanie, push_back etc działają cały czas dokładnie tak samo na tym wewnętrznym vectorze. Porównanie jakby ten optional to był wskaźnik na vector też jest aktualne.

1
komentarz 5 dni temu przez Dani Użytkownik (650 p.)
edycja 5 dni temu przez Dani
Czy dałbyś radę napisać jeszcze do tego przykład w c++? Byłbym bardzo wdzięczny

EDIT : Udało mi się jednak to wykonać

Podobne pytania

0 głosów
0 odpowiedzi 39 wizyt
pytanie zadane 5 dni temu w C i C++ przez Dani Użytkownik (650 p.)
0 głosów
1 odpowiedź 59 wizyt
pytanie zadane 21 lutego 2022 w Java przez matrasek15 Nowicjusz (120 p.)
0 głosów
3 odpowiedzi 128 wizyt
pytanie zadane 16 maja 2020 w Java przez aram100 Użytkownik (500 p.)

90,310 zapytań

138,910 odpowiedzi

311,123 komentarzy

60,024 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...