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

清風竹林

ぷ雪飄絳梅映殘紅
   ぷ花舞霜飛映蒼松
     ----- Do more,suffer less

std::string is contiguous (轉)

原文地址: http://hpyblg.wordpress.com/2010/06/03/stdstring-is-contiguous/

You can safely assume that the memory buffer used by std::string is contiguous. Specifically, the address of the string’s first character can be used as the address for the whole string, just like a C-style char array:

1std::string str = "foo";
2strncpy(&str[0], "bar", 3); // str now contains "bar".

Why is this safe? The current C++ standard apparently doesn’t guarantee that the string is stored contiguously, but it is in all known implementations. Additionally, the next C++ standard (C++0x) will make this guarantee. So the above usage is valid on all present and future C++ implementations.

Why is this important? It’s common for functions, especially in the Windows API, to “return” strings by copying them into a buffer passed to the function. Since the memory buffer used in std::string is contiguous you can safely pass it to the function, after resizing the string to the correct size.

A typical usage for Windows API functions:

01// get required buffer size
02DWORD bufSize = 0;
03GetComputerNameA(NULL, &bufSize);
04if (!bufSize && GetLastError() != ERROR_BUFFER_OVERFLOW) {
05  throw std::runtime_error("GetComputerNameA failed");
06}
07// bufSize now contains required size of buffer, including null terminator
08std::string buf(bufSize, '\0');
09if (!GetComputerNameA(&buf[0], &bufSize)) {
10  throw std::runtime_error("GetComputerNameA failed");
11}
12// bufSize now contains actual size of data
13buf.resize(bufSize);
14// now use buf as a regular std::string

This is cumbersome but actually easier than plain C code, since you don’t have to manage the memory yourself.

Note that the expression &str[0] is valid only if str isn’t empty. Also, everything I’ve said also applies to std::wstring, the wide-character version of std::string.

References:

posted on 2011-05-26 20:52 李現民 閱讀(608) 評論(3)  編輯 收藏 引用 所屬分類: 絕對盜版

評論

# re: std::string is contiguous (轉) 2011-05-27 10:35 oldman

為什么不用 str.data() 呢?  回復  更多評論   

# re: std::string is contiguous (轉) 2011-05-27 10:45 李現民

@oldman
&str[0]的數據是可以修改的, 而str.data()的數據不能修改  回復  更多評論   

# re: std::string is contiguous (轉) 2011-05-27 10:50 oldman

哦,明白你的意思了。我的意思是說既然現在大家對于data的實現也是直接拿內部數據返回的,拿出來去掉const屬性,一樣可以用。  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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| 亚洲国产精品高清久久久| 久久在线免费观看| 老司机67194精品线观看| 在线看国产一区| 最新国产乱人伦偷精品免费网站| 久久综合久久综合九色| 91久久国产精品91久久性色| 亚洲精品久久久久久久久久久| 欧美日韩一区三区| 久久久五月婷婷| 欧美高清视频免费观看| 亚洲婷婷综合色高清在线 | 亚洲一区二区欧美| 亚洲欧美国产精品va在线观看| 国产日韩欧美亚洲一区| 美女国产精品| 欧美亚州在线观看| 久久亚洲不卡| 欧美日本精品一区二区三区| 亚洲欧美在线看| 玖玖玖免费嫩草在线影院一区| 日韩网站在线观看| 亚洲一区中文| 91久久夜色精品国产九色| 亚洲神马久久| 亚洲风情亚aⅴ在线发布| 一本到12不卡视频在线dvd| 国产综合在线视频| 亚洲美女av在线播放| 国内精品久久久久影院 日本资源| 亚洲国产精品成人va在线观看| 国产精品美女999| 亚洲大片在线| 国产一区视频网站| 在线视频你懂得一区二区三区| 在线免费高清一区二区三区| 中文在线一区| 亚洲人成网站999久久久综合| 午夜精品久久久久99热蜜桃导演| 亚洲日本电影| 久久久青草青青国产亚洲免观| 亚洲综合999| 欧美人妖另类| 亚洲成在人线av| 国产午夜精品视频| 夜夜爽av福利精品导航| 亚洲精品资源美女情侣酒店| 久久久噜噜噜久久中文字免| 欧美一区二区日韩一区二区| 欧美日韩国产首页在线观看| 亚洲成在线观看| 亚洲电影下载| 99视频一区二区| 久久精品免费播放| 久久久欧美精品| 国产视频一区在线观看| 亚洲欧美在线磁力| 午夜久久资源| 国产精品自拍在线| 亚洲一区黄色| 欧美一区1区三区3区公司| 欧美日韩中文在线观看| 99国产精品久久久久老师| 一本到12不卡视频在线dvd| 欧美国产亚洲另类动漫| 91久久精品日日躁夜夜躁国产| 亚洲高清激情| 欧美黄色一区二区| 日韩一级黄色大片| 亚洲在线黄色| 国产精品香蕉在线观看| 午夜精品久久久99热福利| 久久精品一区二区三区四区| 国产一区二区三区四区五区美女| 欧美一区二区视频免费观看| 久久久精品国产免大香伊| 国内精品视频在线观看| 久久一二三区| 亚洲激情欧美激情| 亚洲少妇最新在线视频| 国产精品视频一区二区三区| 欧美在线观看你懂的| 欧美高清影院| 亚洲视频在线一区| 国产美女诱惑一区二区| 久久久久久黄| 亚洲精品四区| 欧美在线免费| 亚洲国产一区二区视频| 欧美视频不卡中文| 欧美在线观看视频在线| 亚洲第一精品夜夜躁人人躁| 一区二区三区精品| 国产亚洲欧美aaaa| 欧美激情无毛| 午夜亚洲性色福利视频| 亚洲二区在线视频| 亚洲女女做受ⅹxx高潮| 黄网站免费久久| 欧美日韩国产专区| 久久激情五月激情| 亚洲精品老司机| 久久久久欧美精品| 在线亚洲欧美视频| 黄页网站一区| 国产精品vip| 欧美ed2k| 欧美一级免费视频| aa日韩免费精品视频一| 美女视频网站黄色亚洲| 亚洲欧美网站| 亚洲精品视频在线观看免费| 国产亚洲欧美一区二区三区| 欧美日韩成人一区| 久久中文久久字幕| 先锋影音国产一区| 一本久道久久综合婷婷鲸鱼| 欧美成人伊人久久综合网| 久久av一区二区三区亚洲| 夜夜夜精品看看| 亚洲高清视频一区| 国产视频一区二区三区在线观看| 欧美日韩一卡| 欧美护士18xxxxhd| 鲁大师影院一区二区三区| 亚洲欧美精品suv| 亚洲小说春色综合另类电影| 亚洲日本aⅴ片在线观看香蕉| 免费成人你懂的| 美女主播视频一区| 久久久噜噜噜久久人人看| 欧美一区国产一区| 亚洲专区在线视频| 亚洲自拍偷拍视频| 亚洲一区久久久| 亚洲一二区在线| 亚洲网站啪啪| 亚洲男人影院| 亚洲免费视频一区二区| 亚洲一区精品电影| 亚洲欧美日韩国产一区| 亚洲欧美不卡| 香蕉成人伊视频在线观看| 亚洲欧美制服中文字幕| 亚洲欧美成人精品| 欧美亚洲综合在线| 欧美在线三级| 久久夜色精品国产欧美乱| 久久精品国产清高在天天线 | 一区二区三区 在线观看视频 | 国产日韩精品入口| 国模吧视频一区| 在线日韩中文字幕| 亚洲国产精品久久人人爱蜜臀| 亚洲国产日韩欧美一区二区三区| 亚洲国产精品久久久久秋霞不卡| 亚洲二区精品| 亚洲天堂av在线免费| 亚洲一区999| 久久激情综合| 亚洲承认在线| 夜夜嗨av一区二区三区四季av| 亚洲视频一区在线| 欧美影片第一页| 欧美成人黑人xx视频免费观看| 欧美日本韩国一区| 国产精品综合网站| 精品动漫一区| 一区二区久久| 久久久久久有精品国产| 亚洲国产精品第一区二区| 99精品国产福利在线观看免费| 亚洲综合日韩在线| 噜噜噜噜噜久久久久久91| 欧美日韩精品在线| 国内精品久久久久影院色| 亚洲精品综合久久中文字幕| 午夜精品剧场| 亚洲第一页自拍| 亚洲综合国产| 欧美韩日一区二区三区| 国产日韩成人精品| 野花国产精品入口| 久久久综合网站| 亚洲一级黄色| 美女91精品| 国产视频欧美| 亚洲一二三级电影| 亚洲高清在线观看一区| 在线亚洲免费视频| 欧美二区乱c少妇| 国产专区精品视频| 亚洲性感激情| 亚洲日本中文字幕| 麻豆9191精品国产| 国产欧美91|