linux下练习 c++ 容器的vector的特性

//vector.cpp

/*
vector的特性
当前容量:.capacity()
约定容量:.reserve()
下标:.operator[](i) ,.at(i) 越界抛出异常
*/
#include<iostream>
using namespace std;
#include<vector>
#include<exception>
#include<typeinfo>
#include "print.h"

void print(const vector< vector<int> >& v)//相当于二维数组
{
	for(int i=0;i<v.size();i++)
	{
		for(int j=0;j<v[i].size();j++)
			cout<<v[i][j]<<' ';
		cout<<endl;
	}
}
int main()
{
	vector<double> vt,vt2;//默认容量成倍增长,4,8,16……

	for(int i=1;i<10;i++)
	{
		vt.push_back(i+0.2);
		cout<<vt.size()<<'/'<<vt.capacity()<<' ';
	}
	cout<<endl;
	vt2.reserve(9);//只分配这么多,不成倍增长
	for(int i=1;i<10;i++)
	{
		vt2.push_back(i+0.3);
		cout<<vt2.size()<<'/'<<vt2.capacity()<<' ';
	}
	cout<<endl;
	vt.at(3)=30.50;//修改值
	vt[4]=40.70;
	try
	{
		for(int i=0;i<vt.size();i++)
			cout<<vt.at(i)<<' ';
		cout<<endl;
	}
	catch(exception& e)
	{
		cout<<"\n异常:"<<e.what()<<endl;
		cout<<"类型:"<<typeid(e).name()<<endl;
	}
	int m=3,n=5;
	vector< vector<int> > vvi(m,vector<int>(n));//二维vector
	vvi.resize(m+3);
	vvi[1].assign(9,3);
	vvi[5].assign(4,5);
	print(vvi);

}

/*
template <typename T>
void show(T a[],int n);
template <typename T>
void show(const vector<T>& vt);
*/

//print.h

//print.h

#include <iostream>

using namespace std;

#ifndef print_fun

#define print_fun

template<typename T>

///显示序列数据

void print(T b,T e,char c=' ')

{

	bool isExit=false;

	while (b!=e)

	{

		cout<<*b++<<c;

		isExit=true;

	}

	if(isExit) cout<<endl;

}

#endif

 

 

时间: 2024-08-31 23:12:35

linux下练习 c++ 容器的vector的特性的相关文章

linux下练习 c++ 容器的deque的特性

/* deque特性 下标:.operator[](i)不检查越界,.at(i) 删除:.pop_front(),.pop_back() */ #include<iostream> using namespace std; #include<deque> #include "print.h" int main() { deque<char> dq; dq.push_back('c'); dq.push_back('d'); dq.push_back(

linux下Docker之容器的创建、启动、终止、删除、迁移等

一.创建容器 docker创建容器可以用docker create命令来执行. [root@docker-node1 ~]# docker create -it debian:latest Unable to find image 'debian:latest' locally latest: Pulling from library/debian a719479f5894: Pull complete 91bac885982d: Pull complete Digest: sha256:a15

linux下练习 c++ 容器set、multimset的特性

print.h //print.h #include <iostream> using namespace std; #ifndef print_fun #define print_fun template<typename T> ///显示序列数据 void print(T b,T e,char c=' ') { bool isExit=false; while (b!=e) { cout<<*b++<<c; isExit=true; } if(isExi

linux下练习 c++ 类库中list的特性、关联式容器共性介绍

/* 库模版中 list 特性: 双向链表 增删:.push_front(element),.pop_front(),.remove(element) 不支持下标访问 除去重复:.unique() 相邻的重复元素只保留一个 排序:.sort(),默认用'<'号比较,自定义类型要重载运算符 倒置:.reverse() 转移:.aplice(pos,list2),.aplice(pos,list2,pos2), .aplice(pos,list2,pos2_begin,pos2_end) 归并:.m

linux下练习 c++ 序列容器的使用

//sequence.cpp   // sequence.cpp /* 序列式容器:vector,deque,list 插入:.insert(position,n,element), .insert(position,pos_begin,pos_end) 赋值:.assign(n,element), .assign(pos_begin,pos_end) 调整:.resize(n,element=value) 首尾:.front(),.back() 增删:.push_back(element),

Linux下Tomcat与Apache Web服务器整合

apache|web|web服务|web服务器 1.引言      基于Web技术的Internet/Intranet近年来已经得到了广泛的应用,Intranet是以TCP/IP协议为基础.以Web为核心的企业内部网,用户通过低成本.简单易用的客户浏览器就能随时随地到企业的Web站点上查阅自己所需的数据.浏览器客户端操作界面的一致性避免了C/S模式客户端程序的多样性,而服务器端的开放和基于标准的连接方案使企业很方便地通过Internet同外界联系:同时,Web信息动态的.交互式的发布方式从根本上

Linux下Tomcat与Apache服务器的整合之一

apache|服务器 引言 基于Web技术的Internet/Intranet近年来已经得到了广泛的应用,Intranet是以TCP/IP协议为基础.以Web为核心的企业内部网,用户通过低成本.简单易用的客户浏览器就能随时随地到企业的Web站点上查阅自己所需的数据. 浏览器客户端操作界面的一致性避免了C/S模式客户端程序的多样性,而服务器端的开放和基于标准的连接方案使企业很方便地通过Internet同外界联系:同时,Web信息动态的.交互式的发布方式从根本上改变了企业的服务质量,增加了企业的商业

linux下创建线程内存泄漏,php的json

  这次还是把遇到的几个问题整理一下,希望再遇到的同学能轻松解决.另外最近博客的feeds延迟更新的原因也会一起说明一下. 1.linux下创建线程导致内存泄漏 今天在外网发布了一个server之后,用top发现virt的使用量一直在涨,而且一次涨8m.于是可以断定有内存泄漏了,经过排查,最终确定原因出在多线程的问题上: 代码如下: 1 2 3 4 5 6 pthread_t thread_id; int ret=pthread_create(&thread_id, NULL, flush_th

Linux下Tomcat与Apache Web服务器的整合

1.引言基于Web技术的Internet/Intranet近年来已经得到了广泛的应用,Intranet是以TCP/IP协议为基础.以Web为核心的企业内部网,用户通过低成本.简单易用的客户浏览器就能随时随地到企业的Web站点上查阅自己所需的数据.浏览器客户端操作界面的一致性避免了C/S模式客户端程序的多样性,而服务器端的开放和基于标准的连接方案使企业很方便地通过Internet同外界联系:同时,Web信息动态的.交互式的发布方式从根本上改变了企业的服务质量,增加了企业的商业机会.在许多用户看来,