c++11 体验

本文通过一个具体的C++程序示例介绍了如何使用STL中的set_difference算法来找出两个集合之间的差集。该程序定义了两个整数集合,并分别展示了这两个集合的元素以及它们之间的差集。
#include <iostream>
#include <algorithm>
#include <set>

using namespace std;

int main()
{
    int arry[] = {1,2,3,4,5,6,7,8,9,0,11,12};
    std::set<int> one(arry, arry+7);
    std::set<int> two(arry + 4, arry+12);
    std::set<int> diff;

    std::cout << "one array values: " <<endl;
    for_each(one.begin(), one.end(), [](int value) {
            std::cout << value << ", ";});
    std::cout <<std::endl;

    std::cout << "two array values: " <<endl;
    for_each(two.begin(), two.end(), [](int value) {
            std::cout << value << ", ";});
    std::cout <<std::endl;

    std::set_difference(one.begin(), one.end(), two.begin(), two.end(), std::inserter(diff,diff.begin()));

    std::cout << "diff array values: " <<endl;
    for_each(diff.begin(), diff.end(), [](int value) {
            std::cout << value << ", ";});
    std::cout <<std::endl;

    diff.clear();

    std::set_difference(two.begin(), two.end(), one.begin(), one.end(), std::inserter(diff,diff.begin()));

    std::cout << "diff array values: " <<endl;
    for_each(diff.begin(), diff.end(), [](int value) {
            std::cout << value << ", ";});
    std::cout <<std::endl;

    return 0;

}

编译:

g++ main.cpp -std=c++0x

系统环境:

os:Ubuntu 12.04.2 LTS

g++: gcc 版本 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) 

开始使用g++ main.cpp直接编译出错,提示不支持c++11特性, 编译时加上-std=c++0x


输出:

one array values:
1, 2, 3, 4, 5, 6, 7,
two array values:
0, 5, 6, 7, 8, 9, 11, 12,
diff array values:
1, 2, 3, 4,
diff array values:
0, 8, 9, 11, 12,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值