什么是.second用于?

时间:2015-12-07 07:32:17

标签: c++ vector set

if(s.insert(A [i])。second)是什么意思? s是一个集合,A是一个向量。代码就是这样 -

int main() {
long long p,i,input;
vector<long long> A;
cin>>p;
for(i=0;i<p;i++)
{
        cin>>input;
        A.push_back(input);
}
long long N = A.size();
set<long long> s;
set<long long>::iterator k;
for (i=0;i<N;i++)
{
    if (s.insert(A[i]).second)
    {
       k = s.find(A[i]);
       k++;
       if (k!=s.end())
          s.erase(k);
    }
}

cout<<s.size();

}

提前致谢!

1 个答案:

答案 0 :(得分:3)

map<T>::insert返回pair;如果你looked up the documentation for that function,你就会知道这一点。

该对中的first成员变量存储指向刚刚插入的元素的迭代器。如果元素实际插入(second),true成员变量将存储false

.second访问该对的second成员。