std::size();

Problème avec std::size() et std::empty()

a marqué ce sujet comme résolu.

Bonjour à tous, Comment allez-vous ?

Petite question j’ai écris un code récapitulatif des cours sur les tableau dynamique et l’instruction std::size() ne fonctionne pas dans mon code je ne sais pas pourquoi voici le code:

#include <iostream>
#include <vector> //Ne pas oublier d'inclure vector pour l'utilisation de std::vector

int main()
{
    //Commence à l'indice 0 comment aller chercher un éléments dans un tableau.

    std::vector <int> const tab_Element{1,2,3,4};
    std::cout <<"1er element : " <<tab_Element[0]<<'\n';
    std::cout <<"2em element : " <<tab_Element[1]<<'\n';
    std::cout <<"4em element : " <<tab_Element[3]<<'\n';

    //affiche le premier element et le dernier element avant front et back.
    std::cout <<'\n';
    std::vector <int> const Tab_1er_Element{1,2,3,4,5};
    std::cout <<"1er element : " <<Tab_1er_Element.front()<<std::endl;
    std::cout <<"Dernier element : " <<Tab_1er_Element.back()<<std::endl;

    //Obtenir taille d'un tableau
    std::cout <<'\n';
    std::cout <<"Taille tableau : " <<std::endl;
    std::vector <int> const tabTaille{1,2,3,4,5,6,7};
    auto const taille {std::size(tabTaille)};
    std::cout <<"Taille du tableau : " << taille <<std::endl;

    //affiche le tableau
    std::cout <<'\n';
    std::vector <int> const tab_Entier{1,2,3,4,5,6,7,8,9};
    std::cout <<"Affiche du tableau : \n";
    for (auto const ElementEntier : tab_Entier)
    {
        std::cout <<ElementEntier <<std::endl;
    }

//Verifier si un tableau est vide
    std::vector <int> const tabVide{};
    std::vector <int> const tabRempli{20,30,40};

    std::cout <<"TabVide : " <<std::empty(tabVide)<<std::endl;



    

    return 0;
}

Voici le code erreur que j’ai dans mon IDE : C:\Users\User\Desktop\Cours de c++ Open classroom\Algorithme Exercices\AfficheTableauDynamique\main.cpp|23|error: 'size' is not a member of 'std’| C:\Users\User\Desktop\Cours de c++ Open classroom\Algorithme Exercices\AfficheTableauDynamique\main.cpp|23|error: unable to deduce 'const auto' from '<expression error>'| C:\Users\User\Desktop\Cours de c++ Open classroom\Algorithme Exercices\AfficheTableauDynamique\main.cpp|39|error: 'empty' is not a member of 'std’|

J’utilise code blocks.

Merci d’avance pour votre aide , bonne journée/soirée.

Ps : "Openclassroom étant le site ou j’avais commencé a apprendre mais qu’on ma dit de venir sur ZesteDeSavoir… mais que j’ai omis de changer de repertoire lol…

+0 -0

Bonjour,

D’après ton message d’erreur, le problème ne vient pas de size, mais plutôt empty.

std::empty a été ajouté en C++17. Il faut surement ajouté un flag du genre -std=c++17.

+1 -0

Les deux erreurs sont présentes, mais la solution est la même : std::size() et std::empty() sont des ajouts de C++17

https://en.cppreference.com/w/cpp/iterator/size

https://en.cppreference.com/w/cpp/iterator/empty

Comme précisé par Gabbro tu peux ajouter l’option -std=c++17 dans les Build Options -> Compiler Flags Selon ta version de C::B il y aura peut-être juste une case à cocher, sinon il faudra l’écrire en toutes lettres sur le côté :)

+3 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte