当前位置: 首页 > news >正文

网站建设的主要工作流程seo 推广怎么做

网站建设的主要工作流程,seo 推广怎么做,建设部网站有项目经理资质查询系统,wordpress php 文件上传std::vector 是C标准模板库(STL)中的一个非常重要的容器类,它提供了一种动态数组的功能。能够存储相同类型的元素序列,并且可以自动管理存储空间的大小,以适应序列大小变化,处理元素集合的时候很灵活 1. vector的定义 构造函数声…

 

std::vector 是C++标准模板库(STL)中的一个非常重要的容器类,它提供了一种动态数组的功能。能够存储相同类型的元素序列,并且可以自动管理存储空间的大小,以适应序列大小变化,处理元素集合的时候很灵活

 1. vector的定义

构造函数声明接口说明
vector();无参构造
vector( size_t n, const value_type& val = value_type());构造并初始化n个val
vector(const vector& x);拷贝构造
vector(InputIterator first, InputIterator last);使用迭代器进行初始化构造

 代码如下

#include<iostream>
#include<vector>
//using namespace std;
using std::vector;
using namespace std;
int main()
{vector<int> v1;for (size_t i = 0; i < v1.size(); i++){cout << v1[i] << "  ";}cout << endl;vector<int> v2(10);vector<int> v3(10, 6);for (size_t i = 0; i < v2.size(); i++){cout << v2[i] << "," << v3[i] << "    ";}cout << endl;vector<int> v4(v2);for (size_t i = 0; i < v4.size(); i++){cout << v4[i] << "  ";}cout << endl;vector<int> v5(v3.begin(), v3.begin() + 2);for (size_t i = 0; i < v5.size(); i++){cout << v5[i] << "  ";}cout << endl;
}

其中v1是无参默认构造, v2是利用了缺省值全初始化为0,v3是初始化n个 6,v4是用v2进行拷贝构造,v5则是利用迭代器进行构造

输出结果如下

 2. 迭代器iterator的使用

iterator的使用接口说明
begin+end获取第一个位置数据的iterator/const_iterator,获取最后一个数据的下一个位置的iterator/const_iterator
rbegin+rend获取最后一个数据位置的reverse_iterator,获取第一个数据前一个位置的reverse_iterator 

如下图所示

 使用代码如下

#include<iostream>
#include<vector>
//using namespace std;
using namespace std;
int main()
{vector<int> v(10,6);v.push_back(1);//vector<int>::iterator it = v.begin();auto it = v.begin();while (it != v.end()){cout << *it << "  ";it++;}cout << endl;vector<int>::reverse_iterator iv = v.rbegin();while (iv != v.rend()){cout << *iv << "  ";iv++;}cout << endl;
}

输出结果如下

 使用iterator不可以vector::iterator it = v.begin();  因为vector是一个模板类需要指定其存储元素的类型。直接写没指定vector具体类型,编译器不知道就会报错(比如可能是vector<double>,vector<int>等)。当然也可以直接用auto自动识别。

3. vector空间增长问题

成员函数接口说明
size获取数据个数
capacity获取容量大小
empty判断是否为空
resize改变vector的元素个数(size)
reserve改变vector的容量(capacity)
(1). size与capacity

用以下代码验证vector动态增长

#include<iostream>
#include<vector>
//using namespace std;
using namespace std;
int main()
{vector<int> v;size_t sz = v.capacity();cout << "容量为:" << sz << endl;cout << "元素个数:" << v.size() << endl;for (int i = 0; i < 100; i++){v.push_back(i);if (sz != v.capacity()){sz = v.capacity();cout << "当前容量:" << sz << endl;cout << "当前元素个数:" << v.size() << endl;}}
}

输出结果为下图

 通过上图我们不难发现,在vs中运行每次增长1.5倍,向上取整

而g++下运行每次增长2倍,并不是所有的vector增容都是增长1.5倍或2倍的。具体增长是多少是看具体的需求定义的。vs是PJ版本STL,g++是SGI版本STL。

(2). empty与resize与reserve

reserve只负责开辟空间,如果确定要用多少空间,reserve可以缓解vector增容的代价缺陷问题。只影响capacity(),不影响size()

resize在开空间时还会进行初始化,会影响capacity()还会影响size()

 如以下代码

#include<iostream>
#include<vector>
//using namespace std;
using namespace std;
int main()
{vector<int> v1;size_t sz = v1.capacity();cout << "v1容量为:" << sz << endl;cout << "v1元素个数:" << v1.size() << endl;if(v1.empty()){v1.reserve(100);}for (int i = 0; i < 100; i++){v1.push_back(i);if (sz != v1.capacity()){sz = v1.capacity();cout << "v1当前容量:" << sz << endl;cout << "v1当前元素个数:" << v1.size() << endl;}}vector<int> v2;cout << "v2容量为:" << v2.capacity() << endl;cout << "v2元素个数:" << v2.size() << endl;v2.resize(10);cout << "v2当前容量为:" << v2.capacity() << endl;cout << "v2当前元素个数为:" << v2.size() << endl;for (int i = 0; i < v2.size(); i++){cout << v2[i] << "  ";}cout << endl;vector<int> v3;cout << "v3容量为:" << v3.capacity() << endl;cout << "v3元素个数:" << v3.size() << endl;v3.resize(10, 3);cout << "v3当前容量为:" << v3.capacity() << endl;cout << "v3当前元素个数为:" << v3.size() << endl;for (int i = 0; i < v3.size(); i++){cout << v3[i] << "  ";}cout << endl;
}

输出结果为下图所示

 可以验证我们以上说法

4. vector的增删查改

vector的元素操作接口说明
push_back尾插
pop_back尾删
find查找(算法模块实现,不是vector成员接口)
insert在position(指定坐标)之前插入val
erase删除position(指定坐标)位置的数据
swap交换两个vector的数据空间
operator[]重载运算符,使其能像数组一样访问

//#include<iostream>
//#include<vector>
using namespace std;
//using std::vector;
//using namespace std;
//int main()
//{
//    vector<int> v1;
//    for (size_t i = 0; i < v1.size(); i++)
//    {
//        cout << v1[i] << "  ";
//    }
//    cout << endl;
//    vector<int> v2(10);
//    vector<int> v3(10, 6);
//    for (size_t i = 0; i < v2.size(); i++)
//    {
//        cout << v2[i] << "," << v3[i] << "    ";
//    }
//    cout << endl;
//    vector<int> v4(v2);
//    for (size_t i = 0; i < v4.size(); i++)
//    {
//        cout << v4[i] << "  ";
//    }
//    cout << endl;
//
//    vector<int> v5(v3.begin(), v3.begin() + 2);
//    for (size_t i = 0; i < v5.size(); i++)
//    {
//        cout << v5[i] << "  ";
//    }
//    cout << endl;
//}

//#include<iostream>
//#include<vector>
using namespace std;
//using namespace std;
//int main()
//{
//    vector<int> v(10,6);
//    v.push_back(1);
//    //vector<int>::iterator it = v.begin();
//    auto it = v.begin();
//    while (it != v.end())
//    {
//        cout << *it << "  ";
//        it++;
//    }
//    cout << endl;
//    vector<int>::reverse_iterator iv = v.rbegin();
//    while (iv != v.rend())
//    {
//        cout << *iv << "  ";
//        iv++;
//    }
//    cout << endl;
//}

//#include<iostream>
//#include<vector>
using namespace std;
//using namespace std;
//int main()
//{
//    vector<int> v;
//    size_t sz = v.capacity();
//    cout << "容量为:" << sz << endl;
//    cout << "元素个数:" << v.size() << endl;
//    for (int i = 0; i < 100; i++)
//    {
//        v.push_back(i);
//        if (sz != v.capacity())
//        {
//            sz = v.capacity();
//            cout << "当前容量:" << sz << endl;
//            cout << "当前元素个数:" << v.size() << endl;
//        }
//    }
//}


#include<iostream>
#include<vector>
//using namespace std;
using namespace std;
int main()
{
    vector<int> v1;
    size_t sz = v1.capacity();
    cout << "v1容量为:" << sz << endl;
    cout << "v1元素个数:" << v1.size() << endl;
    if(v1.empty())
    {
        v1.reserve(100);
    }
    for (int i = 0; i < 100; i++)
    {
        v1.push_back(i);
        if (sz != v1.capacity())
        {
            sz = v1.capacity();
            cout << "v1当前容量:" << sz << endl;
            cout << "v1当前元素个数:" << v1.size() << endl;
        }
    }
    vector<int> v2;
    cout << "v2容量为:" << v2.capacity() << endl;
    cout << "v2元素个数:" << v2.size() << endl;
    v2.resize(10);
    cout << "v2当前容量为:" << v2.capacity() << endl;
    cout << "v2当前元素个数为:" << v2.size() << endl;
    for (int i = 0; i < v2.size(); i++)
    {
        cout << v2[i] << "  ";
    }
    cout << endl;
    vector<int> v3;
    cout << "v3容量为:" << v3.capacity() << endl;
    cout << "v3元素个数:" << v3.size() << endl;
    v3.resize(10, 3);
    cout << "v3当前容量为:" << v3.capacity() << endl;
    cout << "v3当前元素个数为:" << v3.size() << endl;
    for (int i = 0; i < v3.size(); i++)
    {
        cout << v3[i] << "  ";
    }
    cout << endl;
}

http://www.hkea.cn/news/105872/

相关文章:

  • 网站后台如何添加关键词软件开发公司
  • 手机做网站的网站windows优化大师卸载不了
  • 万网速成网站有哪些 功能自己的网站怎么推广
  • 邯郸哪有做网站的河南百度推广公司
  • 我是做环保类产品注册哪些浏览量大的网站推销自己的产品比较好呢西安网站seo优化公司
  • 网页传奇游戏排行昆明网络推广优化
  • 商城模板网站模板网站软文是什么
  • 校园网站推广方案怎么做网站排名推广工具
  • 深圳罗湖企业网站建设报价网络媒体发稿平台
  • 用别人公司域名做网站线下推广的渠道和方法
  • php mysql的网站开发外贸推广平台
  • 济南网站建设认可搜点网络能百度指数有三个功能模块
  • 网上商城网站建设意义在线代理浏览网页
  • 网站图片切换代码百度下载并安装最新版
  • 微信公众平台号申请注册入口杭州seo公司
  • 本周实时热点新闻事件seo文章代写一篇多少钱
  • 旺店通app手机企业版下载网站seo如何优化
  • 宝山区建设用地事务所网站网络公司有哪些
  • 用sql做简单的博客网站大连谷歌seo
  • 新手怎么学做网站就业培训机构有哪些
  • magento网站建设搭建网站步骤
  • 营销网站如何实现差异化南京seo公司
  • 服务器托管是啥搜索引擎优化排名培训
  • 山西手机网站建设网址大全123
  • b2c平台有哪些平台网址新区seo整站优化公司
  • WordPress突然全站404网站如何添加友情链接
  • 复制别人网站做第一站seo短视频网页入口引流下载
  • 基层建设论文收录在哪个网站百度统计api
  • 购买主机可以做网站吗楚雄今日头条新闻
  • 深圳专业网站建设公司哪家好宁波网络营销公司