青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

我輩豈是蓬蒿人!

C++ && keyWordSpotting

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  11 Posts :: 0 Stories :: 4 Comments :: 0 Trackbacks

常用鏈接

留言簿(9)

我參與的團隊

搜索

  •  

積分與排名

  • 積分 - 7375
  • 排名 - 1369

最新評論

閱讀排行榜

評論排行榜

(一)

One of the basic classes implemented by the Standard Template Library is the vector class. A vector is, essentially, a resizeable array; the vector class allows random access via the [] operator, but adding an element anywhere but to the end of a vector causes some overhead as all of the elements are shuffled around to fit them correctly into memory. Fortunately, the memory requirements are equivalent to those of a normal array. The header file for the STL vector library is vector. (Note that when using C++, header files drop the .h; for C header files - e.g. stdlib.h - you should still include the .h.) Moreover, the vector class is part of the std namespace, so you must either prefix all references to the vector template with std:: or include "using namespace std;" at the top of your program.

Vectors are more powerful than arrays because the number of functions that are available for accessing and modifying vectors. Unfortunately, the [] operator still does not provide bounds checking. There is an alternative way of accessing the vector, using the function at, which does provide bounds checking at an additional cost. Let's take a look at several functions provided by the vector class:

1?unsigned?int?size();?//?Returns?the?number?of?elements?in?a?vector
2?push_back(type?element);?//?Adds?an?element?to?the?end?of?a?vector
3?bool?empty();?//?Returns?true?if?the?vector?is?empty
4?void?clear();?//?Erases?all?elements?of?the?vector
5?type?at(int?n);?//Returns?the?element?at?index?n,?with?bounds?checking

also, there are several basic operators defined for the vector class:

=           Assignment replaces a vector's contents with the contents of another
==          An element by element comparison of two vectors
[]          Random access to an element of a vector (usage is similar to that
            of the operator with arrays.) Keep in mind that it does not provide
            bounds checking.

Let's take a look at an example program using the vector class:

				
?1?#include?<iostream>
?2?#include?<vector>
?3?using?namespace?std;
?4?
?5?int?main()
?6?{
?7?????vector?<int>?example;?????????//Vector?to?store?integers
?8?????example.push_back(3);?????????//Add?3? onto?the?vector
?9?????example.push_back(10);????????//Add?10?to?the?end
10?????example.push_back(33);????????//Add?33?to?the?end

11?????for(int?x=0;?x<example.size();?x++)?
12?????{
13?????????cout<<example[x]<<"?";????//Should?output:?3?10?33
14?????}

15?????if(!example.empty())??????????//Checks?if?empty
16?????????example.clear();??????????//Clears?vector
17?????vector?<int>?another_vector;??//Creates?another?vector?to?store?integers
18?????another_vector.push_back(10);?//Adds?to?end?of?vector
19?????example.push_back(10);????????//Same
20?????if(example==another_vector)???//To?show?testing?equality
21?????{
22?????????example.push_back(20);?
23?????}
24?????for(int?y=0;?y<example.size();?y++)
25?????{
26?????????cout<<example[y]<<"?";????//Should?output?10?20
27?????}
28?????return?0;
29?}
Summary of Vector Benefits

Vectors are somewhat easier to use than regular arrays. At the very least, they get around having to be resized constantly using new and delete. Furthermore, their immense flexibility - support for any datatype and support for automatic resizing when adding elements - and the other helpful included functions give them clear advantages to arrays.

Another argument for using vectors are that they help avoid memory leaks--you don't have to remember to free vectors, or worry about how to handle freeing a vector in the case of an exception. This simplifies program flow and helps you write tighter code. Finally, if you use the at() function to access the vector, you get bounds checking at the cost of a slight performance penalty.

(二)

?C++ vector is a container template available with Standard Template Library pack. This C++ vector can be used to store similar typed objects sequentially, which can be accessed at a later point of time. As this is a template, all types of data including user defined data types like struct and class can be stored in this container.

This article explains briefly about how to insert, delete, access the data with respect to the C++ vector. The type stl::string is used for the purposes of explaining the sample code. Using stl::string is only for sample purposes. Any other type can be used with the C++ vector.

The values can be added to the c++ vector at the end of the sequence. The function push_back should be used for this purpose. The <vector> header file should be included in all the header files in order to access the C++ vector and its functions.

?1?#include?<vector>
?2?#include?<string>
?3?#include?<iostream.h>
?4?
?5?void?main()
?6?{
?7?????//Declaration?for?the?string?data
?8?????std::string?strData?=?"One";
?9?????//Declaration?for?C++?vector
10?????std::?vector?<std::string>?str_Vector;
11?????str_Vector.push_back(strData);
12?????strData?=?"Two";
13?????str_Vector.push_back(strData);
14?????strData?=?"Three";
15?????str_Vector.push_back(strData);
16?????strData?=?"Four";
17?????str_Vector.push_back(strData);
18?}

The above code adds 4 strings of std::string type to the str_Vector. This uses std:: vector.push_back function. This function takes 1 parameter of the designated type and adds it to the end of the c++ vector.

Accessing Elements of C++ Vector:

?? The elements after being added can be accessed in two ways. One way is our legacy way of accessing the data with vector.at(position_in_integer) function. The position of the data element is passed as the single parameter to access the data.

Using our normal logic for accessing elements stored in C++ Vector:

If we want to access all the data, we can use a for loop and display them as follows.

1?for(int?i=0;i?<?str_Vector.size();?i++)
2?{
3?????std::string?strd?=?str_Vector.at(i);
4?????cout<<strd.c_str()<<endl;
5?}

The std:: vector .size() function returns the number of elements stored in the vector.

Using C++ vector iterator provided by STL:

The next way is to use the iterator object provided by the STL. These iterators are general purpose pointers allowing c++ programmers to forget the intricacies of object types and access the data of any type.

1?std::vector<std::string>::iterator?itVectorData;
2?for(itVectorData?=?str_Vector.begin();??itVectorData?!=?str_Vector.end();?itVectorData++)
3?{
4?????std::string?strD?=?*(itVectorData);
5?}

Removing elements from C++ vector:

Removing elements one by one from specified positions in c++ vector is achieved with the erase function.

The following code demonstrates how to use the erase function to remove an element from position 2 in the str_Vector from our sample.

1 str_Vector.erase(str_Vector.begin() + 1 ,str_Vector.begin() + 2 );

?The following sample demonstrates how to use the erase() function for removing elements 2,3 in the str_Vector used in the above sample.?

1 str_Vector.erase(str_Vector.begin() + 1 ,str_Vector.begin() + 3 );

If one wants to remove all the elements at once from the c++ vector, the vector.clear() function can be used.

posted on 2006-08-13 19:36 keyws 閱讀(821) 評論(0)  編輯 收藏 引用 所屬分類: STL

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品乱码一区二区三区| 国产日韩欧美视频| **网站欧美大片在线观看| 久久精品国产免费观看| 亚洲欧美中日韩| 国产主播一区| 欧美高清视频www夜色资源网| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲电影一级黄| 亚洲精品欧美在线| 国产精品高潮呻吟久久av无限| 性欧美长视频| 久久久久久久综合日本| 亚洲美女电影在线| 亚洲在线日韩| 亚洲国产精品尤物yw在线观看| 亚洲国产欧美一区| 国产精品成人在线| 鲁大师成人一区二区三区| 欧美激情国产精品| 午夜一区二区三区在线观看| 久久精品在线免费观看| 一本久道综合久久精品| 午夜日韩福利| 亚洲精选在线| 午夜精品福利视频| 亚洲国产免费| 亚洲在线免费观看| 亚洲精品国产品国语在线app| 亚洲精品美女在线观看| 国产婷婷成人久久av免费高清| 男人的天堂亚洲在线| 欧美日韩一区在线播放| 久久久久久久久久久久久9999 | 日韩一级成人av| 亚洲欧美综合网| 最新日韩欧美| 久久成人一区二区| 亚洲一区影音先锋| 欧美成人一区二区在线| 午夜在线观看欧美| 欧美久久久久| 久久久久国色av免费看影院| 欧美日韩国产综合网 | 在线看一区二区| 亚洲视频观看| 一区二区三区www| 久热综合在线亚洲精品| 欧美在线日韩在线| 欧美日韩精品| 欧美成人午夜激情在线| 国产日韩在线看| 在线亚洲精品| 亚洲视频日本| 欧美激情视频给我| 欧美69wwwcom| 影音先锋中文字幕一区二区| 亚洲新中文字幕| 亚洲在线观看| 国产精品成人在线| 一区二区三区欧美在线| 一本到高清视频免费精品| 欧美高清视频免费观看| 欧美国产大片| 亚洲精品影院| 欧美精品尤物在线| 亚洲精品免费网站| 一区二区av在线| 欧美日韩国产精品一区二区亚洲 | 99视频+国产日韩欧美| 欧美sm视频| 欧美国产综合| 日韩午夜三级在线| 欧美日韩成人综合天天影院| 亚洲欧洲在线观看| 在线亚洲美日韩| 欧美日韩国产精品| 一区二区毛片| 久久精品女人| 在线日韩精品视频| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产精品视频一二三| 亚洲永久在线| 久久久久国产精品人| 在线观看成人网| 久热精品视频在线观看| 最新成人av网站| 午夜精品婷婷| 伊人久久噜噜噜躁狠狠躁| 男人的天堂成人在线| 亚洲人成人一区二区在线观看| 亚洲视频观看| 国产一级揄自揄精品视频| 久久久视频精品| 亚洲卡通欧美制服中文| 午夜一区二区三区不卡视频| 黑人一区二区| 欧美日韩国产大片| 欧美在线三区| 亚洲精品一区二区三区蜜桃久 | 91久久黄色| 国产精品成人国产乱一区| 久久福利资源站| 亚洲国产三级在线| 欧美在线免费视频| 亚洲日本va午夜在线电影| 国产精品乱码一区二三区小蝌蚪| 久久精品欧美| 日韩午夜激情| 免费成人高清视频| 先锋资源久久| 亚洲乱码国产乱码精品精98午夜| 国产伦精品一区二区三区视频黑人 | 性欧美精品高清| 亚洲人成毛片在线播放| 久久色在线播放| 亚洲网在线观看| 亚洲国产精品毛片| 国产欧美日韩精品专区| 欧美国产日韩在线观看| 久久se精品一区二区| 一区二区三区视频在线播放| 欧美国产激情| 久久久免费观看视频| 亚洲夜间福利| 亚洲精品小视频在线观看| 韩国一区电影| 国产日韩精品综合网站| 欧美性猛交xxxx乱大交退制版| 美日韩精品免费观看视频| 性一交一乱一区二区洋洋av| 夜夜狂射影院欧美极品| 91久久精品国产91久久| 久久综合九色99| 久久久精品五月天| 欧美在线www| 午夜精品久久久久久99热软件| 一本久道久久久| 亚洲精选一区二区| 亚洲狼人综合| 日韩视频一区| 一区二区三区www| 艳女tv在线观看国产一区| 亚洲人体一区| 亚洲精品日韩久久| 亚洲免费观看| 亚洲色图自拍| 亚洲男人第一av网站| 先锋影音网一区二区| 欧美亚洲一区在线| 欧美一区二区三区日韩| 欧美中文在线观看| 久久国产精品99久久久久久老狼| 欧美亚洲网站| 久久久人成影片一区二区三区 | 美女免费视频一区| 玖玖玖国产精品| 牛牛精品成人免费视频| 欧美成人69av| 亚洲国产精品va| 一区二区三区免费观看| 亚洲香蕉在线观看| 欧美在线日韩在线| 麻豆成人av| 欧美日韩精品一区二区| 国产精品视频区| 国产一区二区三区四区| 亚洲第一页在线| 一本久久青青| 久久国产成人| 亚洲国产福利在线| 在线亚洲精品福利网址导航| 午夜伦欧美伦电影理论片| 久久久久久久久久久久久9999| 美腿丝袜亚洲色图| 欧美视频四区| 伊人久久大香线| 亚洲一区二区三区高清| 久久激情婷婷| 亚洲国产一区二区三区青草影视| 夜夜嗨av一区二区三区四区| 欧美一区二区在线观看| 欧美福利影院| 国产精品亚洲一区| 亚洲人体1000| 久久久99爱| 夜夜嗨一区二区| 久久天天躁狠狠躁夜夜av| 国产精品久久久对白| 亚洲第一中文字幕| 亚洲欧美日韩一区二区| 欧美韩日亚洲| 香蕉久久夜色| 欧美三区不卡| 亚洲激情中文1区| 久久久噜噜噜久噜久久| 一本一本久久a久久精品综合麻豆| 久久精品成人欧美大片古装| 国产精品高潮在线| 亚洲精品偷拍|