Some Gourmet SHIT with .size() in C++ . Why ?

Revision en2, by kazuya, 2020-06-18 12:08:04

This is a short code which I wrote and it only printed '1' and not "Hello World" but when I did typecasting in if statement i.e if((int) it->second.size() > x) then it worked completely fine. Now if typecasting is the solution then why this line always works " for (int i=0;i < v.size(); i++) ". Please can anyone explain this behaviour ?

Your code here...
#include<bits/stdc++.h>
using namespace std;


int main()
{
    map<int,set<int>> m;
    m[0].insert(1);
    
    int x = -1;
    for(auto it=m.begin();it!=m.end();it++)
    {
        cout<<it->second.size()<<endl;  
        if(it->second.size() > x)
        cout<<"Hello World"<<endl;
    }
}
Tags #c++, size

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en2 English kazuya 2020-06-18 12:08:04 1
en1 English kazuya 2020-06-18 12:07:16 750 Initial revision (published)