Below I have attempted to write a sudo code for the Observer pattern when observers wish to observe different items.
Ignore the syntax errors. I wish to know if this is the correct way to implement this. If not, please suggest better ways.

// Used by the subject for keeping a track of what items the observer wants to observe
typedef struct observerListStruct
    bool getTemperatureUpdate;
    bool getHumidityUpdate;
    bool getPressureUpdate;
    observer's-function pointer's address;

// Subject's class
class weatherData
        // Observers will call this function to register themselves. The function pointer will point to the function which will get called when updates are available.
        void registerObservers (observer obj, observer's-FunctionPointer)
            // This observer's function returns which items to observe.
            char* f = obj.returnItemsToObserve ();
            if f[0] = `1`
                observerListStruct.getTemperatureUpdate = true;

        void unregisterObservers (observer obj) {}

        vector <observerListStruct> observerList;
        float temperature;
        float humidity;
        float pressure;

        void notifyObservers (){}

        float getTemperature (){}
        float getHumidity ()   {}
        float getPressure ()   {}
} weatherDataObject;

// Base class for observers containing common functions
class observers
    char ItemsToObserve [3] = {1, 2, 3};

    // This observer's function returns which items to observe. Default - return all items
    virtual char* returnItemsToObserve ()
        return ItemsToObserve;

class observerDisplayElementCurrentConditions : public observers
    char ItemsToObserve [3] = {1, 2};

    char* returnItemsToObserve ()
        return ItemsToObserve;

    // this function will be used as a function pointer for getting updates
    void getUpdatesAndDisplayWeatherData (float, float) {}
Another way can be to implement a global table which'll contain the following:
Observer | Item to be observed | Function pointer addresss
Observer will fill up this table, and subject will read from the table and act accordingly?

Which one is the better way out, and why?