.second 有什么用?

Arj*_*Arj -4 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();
Run Code Online (Sandbox Code Playgroud)

}

提前致谢!

use*_*751 5

map<T>::insert返回一个pair; 如果您查找该函数的文档,您就会知道这一点

first对中的成员变量存储一个指向刚刚插入的元素的迭代器。的second成员变量存储true如果元素被实际插入(否则false)。

.second访问该second对的成员。