2

だから、私がこれを持っているとしましょう:

...
struct circle {
   int radius;
   char color;   
}    

vector<circle> circles; 
...

vector<int> sizes;    
for (int i = 0; i < circles.size(); i++) {
    sizes[i] = circles[i].radius;
}
...

「サイズ」が「for」ルーチンなしですべての「半径」を自動的に受け取るようにする方法はありますか?

前もって感謝します。

4

3 に答える 3

5

使用std::transform:

std::transform(
    std::begin(circles), std::end(circles), std::back_inserter(sizes),
    [](const circle &c) {return c.radius;}
);
于 2013-06-18T19:02:38.103 に答える