浅谈C++容器(一)


http://blog.csdn.net/acosoft/article/details/4395468

容器?实质上就是一组相同类型对象的集合,但是它又不仅仅像数组那样简单,它实现了比数组更复杂的数据结构,当然也实现了比数组更强大的功能。C++ 标准模板库里提供了10 种通用的容器类,它基本上可以解决程序中遇到的大多数问题。   

容器的概念是基于数据结构的基本知识,实际上这些容器就是对数据结构提炼的产物,或者说每一个容器就是对某一种数据结构的实例化。容器是由数据结构而来,如果不了解数据结构就很难理解容器的本质。

数据的存储结构:

数据的存储结构来分,有两种类型:顺序存储结构和链式存储结构。顺序存储结构是把数据元素存储在一块连续地址空间的内存中,其特点是逻辑上相邻的数据元素在物理上(即内存存储位置上)也相邻,数据间的逻辑关系表现在数据元素的存储位置关系上。链式存储结构的关键是使用节点,节点是由数据元素域与指针域组合的一个整体,指针将相互关联的节点衔接起来。其特点是逻辑上相邻的元素在物理上不一定相邻,数据间的逻辑关系表现在节点的衔接关系上。

C++ 容器及选用总结

http://www.cnblogs.com/answeryi/archive/2011/12/16/2289811.html

DcmDataDictionary类型

DcmDictEntry类型

DCMTK在DICOM数据集中添加自定义标签


http://support.dcmtk.org/wiki/dcmtk/howto/addprivatedata

http://qimo601.iteye.com/blog/1677604

Howto: Add private data elements to a DICOM dataset

The following example shows how to add private data elements to a DICOM dataset (if not present yet):

 

Cpp代码   收藏代码
  1. #include "dcmtk/config/osconfig.h"  
  2. #include "dcmtk/dcmdata/dctk.h"  
  3.    
  4. #define PRV_PrivateCreator  DcmTag(0x0029, 0x0010, EVR_LO)  
  5. #define PRV_PrivateElement1 DcmTag(0x0029, 0x1000, EVR_LO)  
  6. #define PRV_PrivateElement2 DcmTag(0x0029, 0x1010, EVR_US)  
  7. #define PRV_PrivateElement3 DcmTag(0x0029, 0x1020, EVR_OB)  
  8.    
  9. void addPrivateElements(DcmItem &item)  
  10. {  
  11.   if (!item.tagExists(PRV_PrivateCreator))  
  12.   {  
  13.     item.putAndInsertString(PRV_PrivateCreator, "Your Company Name");  
  14.     item.putAndInsertString(PRV_PrivateElement1, "Some Text");  
  15.     item.putAndInsertUint16(PRV_PrivateElement2, 12345);  
  16.     item.putAndInsertUint8Array(PRV_PrivateElement3, NULL /*data*/, 0 /*length*/);  
  17.   }  
  18. }  
 Please note that for private tags the value representation (VR) has to be specified explicitly to be complete.

It is also possible to register private tags to the data dictionary during runtime:

 

Cpp代码   收藏代码
  1. #include "dcmtk/config/osconfig.h"  
  2. #include "dcmtk/dcmdata/dctk.h"  
  3.    
  4. #define PRIVATE_CREATOR_NAME "Your Company Name"  
  5.    
  6. #define PRIVATE_ELEMENT1_TAG 0x0029, 0x1000  
  7. #define PRIVATE_ELEMENT2_TAG 0x0029, 0x1010  
  8. #define PRIVATE_ELEMENT3_TAG 0x0029, 0x1020  
  9.    
  10. void registerPrivateTags()  
  11. {  
  12.   DcmDataDictionary &dict = dcmDataDict.wrlock();  
  13.   dict.addEntry(new DcmDictEntry(PRIVATE_ELEMENT1_TAG, EVR_LO, "PrivateText",    1, 1, "private", OFTrue, PRIVATE_CREATOR_NAME));  
  14.   dict.addEntry(new DcmDictEntry(PRIVATE_ELEMENT2_TAG, EVR_US, "PrivateInteger", 1, 1, "private", OFTrue, PRIVATE_CREATOR_NAME));  
  15.   dict.addEntry(new DcmDictEntry(PRIVATE_ELEMENT3_TAG, EVR_OB, "PrivateBlob",    1, 1, "private", OFTrue, PRIVATE_CREATOR_NAME));  
  16.   dcmDataDict.unlock();  
  17. }  
 This can be useful for reading datasets with implicit VR (otherwise the VR would be unknown) and e.g. for the textual output of the print() method.

However, this does not mean that you can omit the VR from the putAndInsertXXX() calls. This will change with the next snapshot/release (see commit), so the following will then be possible:

 

Cpp代码   收藏代码
  1. #include "dcmtk/config/osconfig.h"  
  2. #include "dcmtk/dcmdata/dctk.h"  
  3.    
  4. #define PRIVATE_CREATOR_NAME "Your Company Name"  
  5.    
  6. #define PRIVATE_CREATOR_TAG  0x0029, 0x0010  
  7. #define PRIVATE_ELEMENT1_TAG 0x0029, 0x1000  
  8. #define PRIVATE_ELEMENT2_TAG 0x0029, 0x1010  
  9. #define PRIVATE_ELEMENT3_TAG 0x0029, 0x1020  
  10.    
  11. #define PRV_PrivateCreator   DcmTag(PRIVATE_CREATOR_TAG)  
  12. #define PRV_PrivateElement1  DcmTag(PRIVATE_ELEMENT1_TAG, PRIVATE_CREATOR_NAME)  
  13. #define PRV_PrivateElement2  DcmTag(PRIVATE_ELEMENT2_TAG, PRIVATE_CREATOR_NAME)  
  14. #define PRV_PrivateElement3  DcmTag(PRIVATE_ELEMENT3_TAG, PRIVATE_CREATOR_NAME)  
  15.    
  16. void registerPrivateTags()  
  17. {  
  18.   DcmDataDictionary &dict = dcmDataDict.wrlock();  
  19.   dict.addEntry(new DcmDictEntry(PRIVATE_ELEMENT1_TAG, EVR_LO, "PrivateText",    1, 1, "private", OFTrue, PRIVATE_CREATOR_NAME));  
  20.   dict.addEntry(new DcmDictEntry(PRIVATE_ELEMENT2_TAG, EVR_US, "PrivateInteger", 1, 1, "private", OFTrue, PRIVATE_CREATOR_NAME));  
  21.   dict.addEntry(new DcmDictEntry(PRIVATE_ELEMENT3_TAG, EVR_OB, "PrivateBlob",    1, 1, "private", OFTrue, PRIVATE_CREATOR_NAME));  
  22.   dcmDataDict.unlock();  
  23. }  
  24.    
  25. void addPrivateElements(DcmItem &item)  
  26. {  
  27.   if (!item.tagExists(PRV_PrivateCreator))  
  28.   {  
  29.     item.putAndInsertString(PRV_PrivateCreator, PRIVATE_CREATOR_NAME);  
  30.     item.putAndInsertString(PRV_PrivateElement1, "Some Text");  
  31.     item.putAndInsertUint16(PRV_PrivateElement2, 12345);  
  32.     item.putAndInsertUint8Array(PRV_PrivateElement3, NULL /*data*/, 0 /*length*/);  
  33.   }  
  34. }  
  35.    
  36. int main()  
  37. {  
  38.   DcmFileFormat fileformat;  
  39.   fileformat.loadFile("test_in.dcm");  
  40.   registerPrivateTags();  
  41.   addPrivateElements(*fileformat.getDataset());  
  42.   fileformat.saveFile("test_out.dcm", EXS_LittleEndianExplicit);  
  43.   fileformat.print(COUT);  
  44.   return 0;  
  45. }  

 

转载:http://support.dcmtk.org/wiki/dcmtk/howto/addprivatedata 

dcmtk 类信息

http://support.dcmtk.org/docs/classDcmFileFormat.html

dcmtk:howto:loadmetaheader]

http://support.dcmtk.org/wiki/dcmtk/howto/loadmetaheader

DESCRIPTION

dcmodify  is a tool that allows to modify, insert and delete tags and items in DICOM files. Sequences and tags with a value multiplicity > 1 are also supported. Metaheader information and the tag's VR can not be modified directly by  dcmodify  at this time. In addition to tag modifications,  dcmodify  makes available some input options - forcing  dcmodify  to handle its input files as the user specifies - and output options to control the output format of the resulting files.

In case multiple modifications have to be performed, dcmodify does the modifications in the same order as they appear on the command line. Please note that dcmodify does not check whether a given value matches its value representation (VR). Usually, an error message is printed but generally the user should take care of the right VR usage.

by-dcmodify

so-called

生词本
去背诵
英 [səʊ kɔ:ld] 美 [ˈsoˈkɔld]

adj.

in addition to

生词本
英 [in əˈdiʃən tu:]
美 [ɪn əˈdɪʃən tu]

adv.

英 [ˈbaɪnəri]
美 [ˈbaɪnəri]

adj.   

n.   

英 ['i:vn]
美 [ˈivən]

adv.   

adj.   

vt. 

vi. 

delimited

生词本
英 [dɪ'lɪmɪtɪd] 美 [dɪ'lɪmɪtɪd]

v.

Delimitation

transducer[trænz'dju:sə(r)][trænz'du:sər]n.传感器,变频器,变换器

repetitive motion重复运动

adjacent scanlines 相邻的扫描线

minimum separation[ˈminiməmˌsepəˈreɪʃən][ˈmɪnəməmˌsɛpəˈreʃən]最小间隔

desired resolution所需的分辨率

ultrasonic[ˌʌltrəˈsɒnɪk][ˌʌltrəˈsɑnɪk]adj.[声]超声的;超音波的,超音速的n.超声波

synthetic[sɪnˈθetɪk][sɪnˈθɛtɪk]adj.合成的;人造的;摹拟的,虚构的;[语]综合的n.合成物;合成纤维;合成剂

according to claim 1根据权利要求1

wherein[weərˈɪn][hwɛrˈɪn,wɛr-]adv.其中;在那里,在哪方面conj.在哪一点上;在什么地方

a low-profile ultrasound transducer 低剖面的超声传感器

low-profile[ləuˈprəufail][loˈproˌfaɪl]n.不引人注目的形象;[计]具有小高度的剖面图,低剖面

is housed on坐落于

biocompatible[bi:əʊkəm'pætəbl][bi:oʊkəm'pætəbl]adj.生物适合的,不会引起排斥的

piezoelectric[paɪˌi:zəʊɪ'lektrɪk][paɪˌi:zoʊɪ'lektrɪk]adj.压电的

ingestible[ɪnd'ʒestəbl][ɪnd'ʒestəbl]   adj.可摄取的,可吸收的

implantable device is configured for implantation under the skin or in the brain of the patient可植入装置被植入皮肤下或在病人的大脑

implantation

生词本
低频词,记不记随你啦!
去背诵
英 [ˌɪmplɑ:n'teɪʃn]
美 [ˌɪmplænˈteʃən]

n.  


is held in place at 举行地点

array of systems 阵列系统

is operative to操作

resonance[ˈrezənəns][ˈrɛzənəns]   n.共鸣;反响;共振

impedance[ɪmˈpi:dns][ɪmˈpidns]  n.阻抗,全电阻;电阻抗   impedance (im+ped+ance) 阻抗 (阻碍脚步,阻碍走动呗)

音节划分:deficiency

deficiency 英 [dɪ'fɪʃnsɪ][dɪˈfɪʃənsi]   n.缺乏,不足;缺点,缺陷;不足额

音节划分:operative

operative   [ˈɔpərətɪv,-əˌreɪtɪv,ˈɔprə-][ˈɑpərətɪv,-əˌretɪv,ˈɑprə-]

adj.手术的;(计划、法律等)实施中的,起作用的;最适合的;关键词句

n.工作人员;(尤指)体力劳动者;密探;(尤指政府的)特工人员

DISCLOSURE OF THE INVENTION 本发明披露

with respect to  [wið risˈpekttu:]   [wɪðrɪˈspɛkttu]  关于, (至于)谈到

respect由两部分构成,re-是一个前缀,意思是“again”,大家可以查一下《125个常用拉丁语词根》:

re-, red- (Latin: back, backward, again; used as a prefix).

-spect也是一个词根,意思是“look”,在《125个常用拉丁语词根》中也能查到:

spec-, spic-, spect-, spectat-, spectro- -spectr, -spectful, -spection, -spective (Latin: see, sight, look, appear, behold, and examine).

 

通过学习respect,我们可以认识两个词根,一个是re-,它经常作前缀,另一个是-spect

respect=reagain+ spectlook)反复地看,作动词“尊敬”,作名词“尊敬;方面”。

respect[ris5pekt]n.尊敬, 敬重, 注意, 考虑, 尊重, 关系, 有关, 敬意,方面,着眼点vt.尊敬, 尊重, 不防碍

respective[ris5pektiv]adj.分别的, 各自的

in a repetitive motion  在一个重复的动作

repetitive  [rɪˈpetətɪv][rɪˈpɛtɪtɪv]   adj.重复的,啰嗦的;复唱的

in preference to   1.优先于  2.优先于;喜爱甚于   3. 而不要…,优先于

In preference 在偏好

sacrificing image coverage 牺牲图像覆盖

carry out [ˈkæriaut][ˈkæriaʊt] 执行;进行;完成;抬出去

stimulating vibration in a vibratory portion在振动部分振动刺激:   词根 sting, stinct 刺 stimulate。

stimulate英 ['stɪmjʊleɪt]   美 [ˈstɪmjəˌlet]

vt.  

vi.  

vibration英 [vaɪˈbreɪʃn]  美 [vaɪˈbreʃən]

n.   

"vibration", n 振动;颤动【参】vibrate(v 使振动)【类】damp:vibration=stanch:flow制止振动=制止流动""vicario

"vibration", n 振动;颤动
【参】vibrate(v 使振动)
【类】damp:vibration=stanch:flow制止振动=制止流动"

DOM的全称是Document Object Model,也即文档对象模型。它是W3C制定的一套标准接口规范,是给HTML与XML文档使用的一整套API接口,并且这套接口与编程语言无关。XML是一种可扩展性标识语言,能够让程序员自己创造标识,标识所想表示的内容。简单的说,DOM的作用就是让程序员可以随时任意的操纵和处理XML文档中的数据。

DOM只是规定了各个软件厂商应该遵守的规则,并没有具体实现。MSXML实现了DOM的第一级功能,较容易掌握和实现(目前6个版本)

module['mɒdju:l][ˈmɑdʒul]

n.模块;组件;(宇宙飞船上各个独立的)舱;测量流水等的单位,模块;模件;模组;尺度

serialization串行化,making a serialization class 生成一个串行化的类

illumination[ɪˌlu:mɪˈneɪʃn][ɪˌluməˈneʃən]

n.照明;阐明,解释清楚;<物>照度;彩饰,图案花饰;照明;照度;光照;启发

spectral[ˈspektrəl][ˈspɛktrəl]

adj.(似)鬼的;幽灵的;谱的;光谱的;;光谱;谱;光谱的;频谱的

far-ultraviolet

·        远紫外的;

·        远紫外线的;

·        远视眼

specimens [ˈspesimənz]

n.样品( specimen的名词复数 );范例;(化验的)抽样;某种类型的人

·        结石;

·        样块;

·        模式标本

electromagnetic [ɪˌlektrəʊmægˈnetɪk][ɪˌlɛktromæɡˈnɛtɪk]  

adj.<物>电磁的; 电磁场;电磁式

spectrum['spektrəm][ˈspɛktrəm]

n.[物理学]谱,光谱:辐射源,能谱;光谱相片;范围;系列,范围,幅度

Euclidean[ju:ˈklidiən][juˈklɪdiən]

(古希腊数学家)欧几里得的,欧几里得几何学的

constant['kɒnstənt][ˈkɑnstənt]

adj.不断的,持续的;永恒的,始终如一的;坚定;忠实的

n.[数]常数,常量;不变的事物;永恒值

contours [ˈkɔnˌtʊəz]

n.外形,轮廓( contour的名词复数 );地图上表示相同海拔各点的)等高线

elect[ɪ'lekt][ɪˈlɛkt]

vt.选举;挑出,挑选;决定

vi.选择,挑选;进行选举

adj.精选的,选出的;选中的,当选而尚未就职的

n.被选的人

monochrome [ˈmɔnəˌkrəʊm][ˈmɑnəˌkrom]

n.单色画,单色照片,黑白照片

adj.单色的,黑白的

mechanical[məˈkænɪkl][mɪˈkænɪkəl]

adj.机械的,机械学的;呆板的;体力的;手工操作的

sequentially   、、、、、、、、、看到这了

[sɪ'kwenʃəlɪ][sɪ'kwenʃəlɪ]

adv.继续地,从而

pass filter[pɑ:sˈfiltə][pæsˈfɪltɚ]滤过器

utilize['ju:təlaɪz][ˈjutlˌaɪz]vt.利用,使用

the field of view视野

such that[sʌtʃðæt][sʌtʃðæt]到这样的程度

discrimination[dɪˌskrɪmɪˈneɪʃn][dɪˌskrɪməˈneʃən]

n.歧视;辨别,区别;辨别力,识别力;不公平的待遇

discrete[dɪˈskri:t][dɪˈskrit]adj.分离的,不相关联的;分立式;非连续

intensities [inˈtensitiz]

n.强烈( intensity的名词复数 );(感情的)强烈程度;强度;烈度

enormous[iˈnɔ:məs][ɪˈnɔrməs]

adj.巨大的;庞大的;极恶的;凶暴的

scotopic[skəʊ'tɒpɪk][skoʊ'tɒpɪk]

adj.暗适应的,暗视的

experimental[ɪkˌsperɪˈmentl][ɪkˌspɛrəˈmɛntl]

adj.实验的;根据实验的;试验性的

logarithmic

生词本

[ˌlɒɡə'rɪðmɪk][ˌlɒɡə'rɪðmɪk]

adj.对数的

quantize['kwɒntaɪz]['kwɒntaɪz]

vt.使量子化

abrupt[əˈbrʌpt][əˈbrʌpt]

adj.突然的,意外的;无理的,唐突的;不连贯的;陡峭的

contour['kɒntʊə(r)][ˈkɑnˌtʊr]

n.外形,轮廓;(地图上表示相同海拔各点的)等高线;概要;电路

vt.画轮廓(等高线)

adj.显示轮廓的

diagonal[daɪˈægənl][daɪˈæɡənəl]

n.[数]对角线;斜线;斜列;斜纹布

adj.对角线的;斜线的;斜的;斜纹的

chips

生词本

常见度:

·         

 

中频词,你记住了吗?

去背诵

[tʃɪps][tʃɪps]

n.炸马铃薯条;注定要失败(或完蛋);在危急关头;在关键时刻;碎片( chip的名词复数 );缺口;(作赌注用的)筹码;(足球)高球

Babydon’t kicking the quilt!

·        Now theydon't have to worry about me kicking the blankets at night.

现在他们再也不用担心我晚上踢被子啦.

A new day has begun.新的一天开始了!

相关例句:

·        1.Soon the sun would rise, and it would be a new day.

太阳很快就要升起来, 新的一天开始了.

Full.

相关例句:

·        1.Ah oh, you had a big burp. Are you full?

哎呦, 宝宝打一个大嗝.你吃饱了 ?

I'm full

相关例句:

·        1.I'm stuffed ( ie full of food )!

我吃!

tutorial

[tju:ˈtɔ:riəl][tuˈtɔriəl,-ˈtor-, tju-]

n.个人辅导的;教程,辅导材料;使用说明书

adj.家庭教师的;指导教师的;辅导的;监护人的

subversion

[səb'vɜ:ʃn][səbˈvɚʒən,-ʃən]

n.颠覆(活动);破坏;覆灭,瓦解

approach

[ə'prəʊtʃ][əˈprəʊtʃ]

vt.& vi.接近,走近,靠近

vt.接近;着手处理;使移近;试图贿赂(或影响,疏通)

n.方法;途径;接近

vi.靠近

斜率gradient rake ratio ascent;[数]slope

截距nodal increment intercept

Resolution分辨率

The resolution of the device on which therectangular image was created.根据设备分辨率创建图像。

datacompression[ˈdeitə kəmˈpreʃən][ˈdetə kəmˈprɛʃən]数据压缩

An array of bits that maps red, green, blue( RGB ) tripletsto pixels in the rectangular image.图像像素的RGB值’

tutorial[tju:ˈtɔ:riəl][tuˈtɔriəl, -ˈtor-, tju-]

n.个人辅导的;教程,辅导材料;使用说明书

adj.家庭教师的;指导教师的;辅导的;监护人的

reverse[rɪ'vɜ:s][rɪˈvɚs]

vt.& vi.(使)反转;(使)颠倒;掉换,交换;[]撤消,推翻

vi.倒退;[桥牌]逆叫

adj.反面的;颠倒的;倒开的;[]倒卷的

n.倒转,反向;[]回动;倒退;失败

IntegratedDevelopment Environment 集成开发环境

plugin['plʌgɪn]['plʌgɪn]插件(计算机软件术语)

logcatAndroid中一个命令行工具,可以用于得到程序的log信息。

emulator[ˈemjuleɪtə(r)]

n.仿真器;仿真程序

model['mɒdl][ˈmɑdl]

n.模型;模特儿;模式;典型

vt.& vi.做模特儿

vt.模仿;制作模型,塑造;将做成模型

adj.典型的,模范的

JREJava Runtime EnvironmentJava运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。

navigationalelements导航元素

actionbar 工具栏


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐