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

空间 网站都有 肿么做网站营销网络的建设怎么写

空间 网站都有 肿么做网站,营销网络的建设怎么写,python网站开发好吗,杭州行业网站建设公司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.tj-hxxt.cn/news/47001.html

相关文章:

  • wordpress离线浏览seo技术培训山东
  • 工业网站素材温州seo排名优化
  • 做网站推销自己的产品这可行吗百度竞价网站
  • 怀化seo英文外链seo兼职
  • 网站维护 关站 seo宁波seo推广优化哪家强
  • 量身定制北京专业网站优化
  • 自助分红网站建设影视后期哪个培训靠谱
  • 网站小视频怎么做代理关键词挖掘查询工具
  • 铜川做网站的公司电话江北seo页面优化公司
  • 网站建设结算方式如何制作自己的公司网站
  • 做偏门网站国内推广平台
  • wordpress本地建站教程石家庄网络推广平台
  • 一步一步网站建设教程兰州网络推广
  • 在线用代码做网站客源软件哪个最好
  • 最好科技广州网站建设推广产品的方法和步骤
  • 重庆微信网站制作费用长沙网站关键词排名推广公司
  • 网站模板软件性价比高seo的排名优化
  • 做冷库的网站电商平台营销策划方案
  • 做电商网站要多少钱最好的网站优化公司
  • 好创意网站有哪些方面杭州数据推广
  • 重庆短视频制作公司排名seo优化网络公司
  • 下做图软件在哪个网站下载器seo研究
  • 深圳网站建设好不好高级搜索引擎
  • 如何增加网站访问量女生做sem还是seo
  • 如何提高 网站的点击量nba最新消息
  • 专门做特价的网站百度搜索引擎怎么做
  • 国内知名网站建设企业东莞seo技术
  • 纯html css做的网站口碑推广
  • 衡水做网站哪儿好东莞seo整站优化火速
  • 做网站编辑好还是新媒体编辑百度扫一扫