C++ Vector用法深入剖析
2013-10-06 10:10
141 查看
C++ Vector用法深入剖析
C++编程语言中有一种叫做Vector的应用方法,它的作用在实际编程中是非常重要的。在这里我们将会为大家详细介绍一下C++ Vector的相关应用技巧及基本内容,希望能给大家带来一些帮助。(1)vector< 类型 > 标识符 ;
(2)vector< 类型 > 标识符(最大容量) ;
(3)vector< 类型 > 标识符(最大容量,初始所有值);
(4) int i[4] = {12,3,4,5};
vector< 类型 > vi(i , i+2); //得到i索引值为3以后的值 ;
(5)vector< vector<int> > //vi 定义2维的容器;记得一定要有空格,不然会报错
vector< int > line
// 在使用的时候一定要首先将vi个行进行初始化;
for(int i = 0 ; i < 10 ; i ++)
{
vector.push_back(line);
}
/// 个人认为使用vector定义二维数组很好,
因为是长度可以不预先确定。很好。
(6)C++ Vector排序
vector< int > vi ;
vi.push_back(1);
vi.push_back(3);
vi.push_back(0);
sort(vi.begin() , vi.end()); /// /小到大
reverse(vi.begin(),vi.end()) /// 从大道小
(7)顺序访问
vector < int > vi ;
for( int i = 0 ; i < 10 ; i ++)
{
vi.push_back(i);
}
for(int i = 0 ; i < 10 ; i ++) /// 第一种调用方法
{
cout <<vi[i] <<" " ;
}
for(vector<int>::iterator it = vi.begin() ;
it !=vi.end() ; it++) ///第二种调用方法
{
cout << *it << " " ;
}
(8)寻找
vector < int > vi ;
for( int i = 0 ; i < 10 ; i ++)
{
vector.push_back(i);
}
vector < int >::interator it = find(vi.begin() , vi.end,3) ;
cout << *it << endl ; ///返回容器内找到值的位置。
(9)使用数组对C++ Vector进行初始化
int i[10] ={1,2,3,4,5,6,7,78,8} ;
///第一种
vector<int> vi(i+1,i+3); ///从第2个元素到第三个元素
for(vector <int>::interator it = vi.begin() ;
it != vi.end() ; it++)
{
cout << *it <<" " ;
}
(10) 结构体类型
struct temp
{
public :
string str ;
public :
int id ;
}tmp;
int main()
{
vector <temp> t ;
temp w1 ;
w1.str = "Hellowor" ;
w1.id = 1 ;
t.push_back(t1);
cout << w1.str << "," <<w1.id <<endl ;
return 0 ;
}
C++ Vector的基本介绍就为大家介绍到这里。
vector::push_back
public member functionvoid push_back ( const T& x );
Add element at the end
Adds a new element at the end of the vector, after its current last element. The content of this new element is initialized to a copy of x.
This effectively increases the vector size by one, which causes a reallocation of the internal allocated storage if the vector size was equal to the vector capacity before the call. Reallocations invalidate all previously obtained iterators, references and pointers.
Parameters
xValue to be copied to the new element.T is the first template parameter (the type of the elements stored in the vector).
Return value
noneIf a reallocation happens, it is performed using Allocator::allocate(), which may throw exceptions (for the defaultallocator, bad_alloc is thrown if the allocation request does not succeed).
Example
// vector::push_back #include <iostream> #include <vector> int main () { std::vector<int> myvector; int myint; std::cout << "Please enter some integers (enter 0 to end):\n"; do { std::cin >> myint; myvector.push_back (myint); } while (myint); std::cout << "myvector stores " << int(myvector.size()) << " numbers.\n"; return 0; }
The example uses push_back to add a new element to the vector each time a new integer is read.
Complexity
Constant (amortized time, reallocation may happen).See also
vector::pop_back | Delete last element (public member function) |
vector::insert | Insert elements (public member function) |
相关文章推荐
- C++ Vector用法深入剖析
- 深入剖析Tomcat会话机制
- Java并发编程:深入剖析ThreadLocal(这是一篇转载的,不是原创)
- vi文件保存退出命令":wq"和":x"的区别(经典深入剖析)
- 【深入剖析Tomcat笔记】第二篇 ServerSocket模型
- 深入探索spring技术内幕(四): 剖析@Resource注解实现原理与注解注入
- 深入剖析Socket实现
- java并发编程(9)--深入剖析ThreadLocal
- DICOM医学图像处理:深入剖析Orthanc的SQLite,了解WADO & RESTful API
- 深入剖析微软ASP.NET Ajax中的数据绑定架构上篇之一
- Git版本库深入剖析
- 【Java深入】ArrayList源码剖析(二)
- 深入剖析jsonp跨域原理
- Python 深入剖析SocketServer模块(一)(V2.7.11)
- Collection Map 深入剖析
- 深入剖析JavaScript:Object类型
- 3D技术深入剖析 Shader Model 3.0特色揭密
- YARN/MRv2 Resource Manager深入剖析—RM总体架构
- printf函数实现的深入剖析
- NAT类型及转换原理深入剖析