AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / 问题

All perguntas(coding)

Martin Hope
Pain In Kabir
Asked: 2025-04-03 05:59:04 +0800 CST

Como adicionar a Rússia ao mapa da Europa que é um arquivo SVG?

  • 5

Não tenho experiência com arquivos SVG. Então, realmente não sei o que fazer.

No meu arquivo SVG há um mapa da Europa: Minha imagem SVG

E os países são adicionados aos códigos SVG assim:

<svg viewBox="567.8 340.8 122.8 87.6">
 <path d="M666.8 348l0.6-0.6 2.3 0.7 4.5 2.2 1.1 0.9 0.8 3 2.1 5.1 2.9 4.9 1.7 3.6 0.9 3.9-0.6 1.6-4 1.7-0.8 0.5-2 2.7 0 1.2 3.3 1.3 1.8 1 0.8 1-0.2 2.4 0.4 1.1-0.8 1.5 0.1 1.3 1 1.6 1.2 1.8 0 1.3 2.7 2.8 1.9 2.8 1.4 1-1.2 1.3 1.8 2.6 0.1 1.3-1.2 1.8-3 0.5-4.8 4.6-2.4 2.7-3.4 4.4-0.6 1 1.5 3.8-0.1 1.8 1.9 1.4-0.4 0.9-3.3-0.7-0.9-0.2-5.7-1.9-0.8-1.4-1-0.7-3.1-1-3.6-0.3-3.2 0.2-1.4 1.5-1.8-0.1-2.4-1-3 0.1-2.3 1-1.1 2.1-1.7-0.6-1.4 0.4-0.6-2.7-1.4-0.4-3-3-2.2 1.3-1 1.7-2.2 0-0.5-1.5-1.3-0.2-0.5-1.6-2.8-2.2-0.5-1.8-2.7-0.8-0.5 0.2-3.5-1.8-1.8 1-1-0.6-2.7-2.3 1.4-0.5 0-1.6-3.6 0.7-3.3-1.9-2.2-0.6-1.3 0 1.7 2.4-3.5 2.5-1-0.4-1.5-1.9-2-1.8-1.6-0.9 1.6-1.2 0.7-1.1-1.8-1.2-3.2 0.7-0.8-0.9-2.7-1.1-4.6-1.1-1-1.1-0.3-1.1-3.3-0.8 0.1 1.9-2.1 0.4 1.6-3.6 0.4-2.3-1.6-3.2-2.2-0.9 0-1.6-1.9-3.1 0.8-1.1 0.7-2.6-0.8-1.9-2-2.3 0.6-2.6-1.4-1.7-3.3-2.1-1.6-1.4 0.7-1.6 1.9-1.8 0.3-2.7-1.8-4.1-0.7-2.6 2.8 0.9 0.7-0.5-0.1-1.8-4.1-0.7-0.1-1.2 2 0.4 3.8-1.4 6.5-1.8 6.9-1.7 3.3-0.5 2-2.2 1.9-1.7 3.8-0.7 1.3-0.8 2.8-1.2 6.6-1.2 5.5-0.4 5.4 2.3-0.9 0.3-3-1.2 2.2 3.5 1.1 1.2 2 0.9 1.7 0.3 4.9-0.5 2.2-1.1 0.5 0.1 6.6 0.4 22.9 0.9 7 0.1z" id="PL" name="Poland"> </path>
</svg>

Sim, esta é a linha do polígono da Polônia. Tenho 40 países assim e quero adicionar a Rússia também. No entanto, não sei como determinar as coordenadas dos cantos do polígono. Como posso fazer isso?

Eu também tenho um mapa-múndi SVG, mas não acho que posso adicioná-lo ao mapa da Europa corretamente. No entanto, estas são as coordenadas da Rússia daquele mapa-múndi:

<svg viewBox="1104 26 675.9 211.9 ">
  <path class="Russian Federation" d="M 1661.7 231 1660.3 229.9 1658.4 226.6 1660.9 226.5 1657 219 1652.3 213.6 1655.2 211.4 1662.1 212.5 1661.5 206.3 1658.7 199.5 1659 197.2 1657.7 191.5 1650.8 193.4 1648.2 195.8 1640.6 195.8 1634.6 190 1625.6 185.5 1615.6 183.5 1609.4 177.5 1604.9 173.7 1601.1 171 1593.4 164.8 1587.4 162.6 1578.8 160.7 1572.6 160.9 1567.5 162 1565.8 165.1 1569.5 166.5 1572 169.9 1570.7 171.9 1570.9 178.4 1572.8 181.2 1568.4 185.1 1561 182.7 1555.4 183.3 1551.5 181.2 1548.1 180.5 1543.7 184.9 1537.8 185.9 1534.2 187.5 1527.4 186.5 1522.8 186.5 1517.9 183.3 1511.3 180.4 1505.9 179.5 1500.2 180.3 1496.2 181.5 1487.7 178.9 1484.1 174.3 1477.4 172.7 1472.6 171.9 1465.6 169.4 1464.3 175.8 1468.3 179.4 1465.9 183.8 1457.9 182.2 1452.9 182 1448.1 179.1 1442.9 179 1437.6 177.1 1431.7 180 1425 185.3 1420.3 186.4 1418.6 186.9 1414.2 183.1 1408.2 184 1404.9 181.3 1400.9 180.1 1396.8 176.5 1393.5 175.4 1387.3 177 1378.9 173.5 1377.8 176.7 1359.5 161.1 1351.1 156.4 1351.9 154.4 1342.7 160.2 1338.3 160.5 1337.2 157.2 1330.1 155.1 1325.8 156.6 1321.4 150.3 1312.3 149 1309.2 151.5 1298.3 153.8 1296.6 155.3 1279.6 157.4 1278.2 159.5 1283.3 163.7 1279.3 165.3 1280.8 166.9 1277.3 169.9 1286.7 174.2 1286.5 177.1 1279.5 176.8 1278.7 178.7 1271.4 175.5 1263.7 175.6 1259.3 178.2 1252.7 175.7 1240.7 171.4 1233.1 171.6 1225 178.3 1225.6 182.8 1219.6 179.2 1217.4 186.1 1219.2 187.3 1217.5 192.1 1222.8 196.3 1226.4 196.1 1230.7 200.3 1230.9 203.5 1233.7 204.6 1232.3 208.3 1227.7 209.3 1224.1 215.8 1230.1 221.9 1230.5 226.1 1237.8 233.6 1235.3 236.2 1234.7 237.8 1232.3 237.3 1228 233.5 1226.5 233.3 1222.9 231.8 1220.8 229.2 1215.7 227.9 1212.8 228.9 1211.6 227.7 1204 224.6 1196.3 223.6 1191.7 222.5 1191.3 223.3 1183.7 217.9 1177.5 215.5 1172.4 211.8 1176 210.8 1179.2 205.6 1175.9 203.1 1182.8 200.5 1182.4 199.1 1178.1 200.1 1177.7 197.4 1179.9 195.6 1184.7 195.2 1185 193.1 1183.2 189.6 1184.5 186.4 1184.1 184.5 1176.4 182.5 1173.5 182.6 1169.9 179.7 1166.3 180.7 1159.6 178.5 1159.5 177.3 1157.2 174.6 1153.3 174.3 1152.5 172.4 1153.4 171.1 1149.6 167.6 1144.7 168.2 1143.2 167.9 1142.2 169.3 1140.4 169.1 1138.4 165.1 1136.9 163.1 1137.7 162.5 1141.6 162.7 1143.2 161.4 1141.5 159.8 1138.1 158.7 1138.1 157.6 1136 156.5 1132.2 152.5 1132.9 150.9 1131.8 148 1127 146.6 1124.6 147.3 1123.7 145.8 1118.4 144.3 1116.3 140.7 1115.3 137.8 1112.8 136.5 1114.4 134.6 1112 129 1114.6 125.6 1113.7 124.6 1118.2 121.3 1112.8 118.5 1120.8 111.1 1124.2 107.7 1125.1 104.8 1117.7 100.9 1118.6 97.1 1113.7 92.9 1115.4 88.1 1108.9 81.8 1111.8 77.6 1104.5 73.9 1104.1 70.1 1107.3 69.6 1113.7 67.5 1117.4 65.6 1125.1 68.8 1136.8 70.1 1154.5 76.3 1158.6 78.9 1160.1 82.6 1156.4 85.5 1149.9 87 1129.7 82.8 1126.8 83.5 1134.9 87.6 1135.9 90.2 1137.8 96 1143.9 97.7 1147.7 99.2 1147.5 96.4 1144.1 94 1146.2 91.8 1157.8 95.4 1161 94 1156.7 89.8 1164.8 84.4 1168.9 84.7 1173.5 86.6 1174.6 82.8 1169.9 79.5 1170.7 76.2 1166.4 72.8 1178.7 74.6 1182.3 77.6 1177.2 78.3 1178.4 81.4 1182.5 83.3 1188.5 82.1 1188.1 78.6 1195.8 75.9 1208.2 71.3 1211.4 71.5 1208.9 74.8 1214.3 75.4 1216.4 73.5 1224.1 73.4 1229.1 71.1 1235.5 74.4 1238.3 70.8 1232.3 67.7 1233.5 65.9 1246.5 67.5 1253.1 69.2 1271.7 75.4 1272.8 72.6 1266.9 69.7 1266.1 68.6 1260.8 68 1260.6 65.5 1255.9 61.3 1254.8 59.6 1259.1 54.9 1258.5 50.1 1260.7 49.1 1272.1 50.5 1275 53.4 1274.1 57.6 1277.8 59.3 1281.6 63 1285.4 70.4 1292.1 73.7 1292.6 77.4 1289.1 85.2 1294.4 86 1294.9 84 1298.7 82.6 1298.2 79.9 1300.1 77.2 1295.7 74.1 1295.3 70.5 1290.5 70.1 1287.6 67.1 1287.2 61.7 1279 57.4 1283.7 53.9 1280 50.2 1281.9 50.1 1286.1 52.9 1288.2 58 1293.2 59 1288.6 55.2 1293.7 53.1 1301.8 52.8 1311.4 55.8 1304.5 51.5 1299.6 46 1305.5 45 1315 45.2 1322.8 44.5 1317.2 41.9 1318.5 38.6 1322.7 38.4 1327.6 36 1336.9 35.3 1336.7 33.9 1346 33.5 1350.3 34.6 1355.7 32 1362.7 32.1 1361.2 29.9 1362.1 27.9 1368.3 25.9 1376.6 27.5 1373.1 28.7 1382.5 29.4 1386.6 31.8 1388.5 30.6 1399.4 30.7 1411 33.1 1416.5 34.9 1419 37.5 1416.6 39 1410 41.8 1408.9 43.3 1414.5 44 1421.7 45.3 1424.1 44.3 1429.9 47.6 1430.1 46.3 1435.3 45.5 1448.9 46.3 1452.7 48.7 1470.1 49.5 1465.3 45.6 1474.8 46.5 1480.9 46.4 1490.8 49.1 1496.8 52.4 1497.2 54.6 1507.3 58.8 1516.3 60.9 1513.3 55.4 1522.7 57.7 1527.7 56.3 1537.5 57.9 1538.5 56.5 1546.1 57.2 1536.7 52.3 1538.8 50.1 1579.2 53.5 1587.1 56.6 1603.4 60.6 1618.2 59.6 1627.5 60.5 1634.1 62.7 1639.2 66.6 1646.5 68.1 1650.4 67 1657.4 66.9 1666.7 67.9 1673.6 67.3 1687.9 72.1 1690.4 70.4 1681.9 67 1680.1 64.6 1695.4 66.1 1703.4 65.8 1719.2 68.3 1728.7 70.7 1761.9 92.8 1759.9 95.3 1753.7 94.9 1761.9 97.9 1771 102.6 1775.2 104.1 1779 106.5 1780 108 1770 106.8 1763.4 111.1 1760.4 111.8 1758.8 115.9 1756.8 119.5 1758.5 122.2 1747 118.1 1740.9 122.7 1736.2 120.5 1734.8 123.1 1727.8 122.2 1730.9 126.1 1732 131.9 1734.9 134.3 1741.7 135.6 1750.8 144.3 1746.7 144.6 1750.1 149.6 1754.8 152.2 1749.8 155.3 1755.2 162.3 1749.5 163.8 1754 170 1752.3 175.8 1746.6 171.5 1736.1 162.6 1719.9 149 1713.4 140.7 1713.5 137.1 1710.7 134.3 1716.4 133 1716.2 125.5 1716.9 119.5 1719.4 114.8 1712.8 106.6 1708.1 107.1 1711.3 111.9 1707.7 118.3 1695.4 111.1 1686.3 113.1 1686.3 122.9 1694 126.5 1685.5 128.1 1679.1 128.7 1674.8 124.4 1666.8 123.5 1664.3 126.4 1649.2 125.4 1636 127.1 1632.5 138.8 1627.5 153 1635.7 153.8 1641.4 157.6 1647.2 158.9 1647.6 155.9 1653.2 156.3 1666 163 1670.7 168.2 1672.1 174.4 1677.6 181.8 1682.9 191.7 1681.9 200.8 1683.2 205.1 1681.2 212.5 1679.1 219.8 1678.2 223.5 1673.6 227.2 1670.5 227.3 1665.3 224.2 1661.2 228.9 1661.7 231 Z"></path>
</svg>

svg
  • 1 respostas
  • 46 Views
Martin Hope
Milacay
Asked: 2025-04-03 05:58:27 +0800 CST

ASP.NET armazena respostas de várias tarefas na lista de 2 colunas

  • 6

Sou novo em C# e tenho esse código abaixo fazendo várias chamadas de API. Esse código funciona bem, pois posso ver que ele listResultstem as respostas de cada chamada.

List<string> listResults = new();
var listIDs = new List<string>
{
    "ID1",
    "ID2",
    "ID3"
};

string baseURL = $"https://API_URL/id=";
var postTasks = listIDs.Select(p => client.GetStringAsync(baseURL + p));
var posts = await System.Threading.Tasks.Task.WhenAll(postTasks);
foreach (var postContent in posts)
{
    listResults.Add(postContent);
    Debug.WriteLine(postContent);
}

Agora quero armazenar a string de resposta na lista de 2 colunas: a 1ª coluna é o ID e a 2ª coluna é a string de resposta.

Então eu tenho este modelo de resposta:

public class ItemResponseJsonModel
{
    public string ID { get; set; }
    public string ResponseJSON { get; set; }
}

Então tentei implementar a lista com o modelo no código abaixo, mas foi aí que fiquei preso em como adicionar o ID na primeira coluna de listResultscada resposta.

List<ItemResponseJsonModel> listResults = new();
var listIDs = new List<string>
{
    "ID1",
    "ID2",
    "ID3"
};

string baseURL = $"https://API_URL/id=";
var postTasks = listIDs.Select(p => client.GetStringAsync(baseURL + p));
var posts = await System.Threading.Tasks.Task.WhenAll(postTasks);
foreach (var postContent in posts)
{
    listResults.Add(postContent);  // This is where the error will say cannot convert string to ItemResponseJsonModel.
    Debug.WriteLine(postContent);
}

Quero que o resultado final listResultsfique como abaixo, onde a primeira coluna é o ID e a segunda coluna é a string de resposta.

listResults {
    { ID = "ID1", ResponseJSON = "ResponseJSON" },
    { ID = "ID2", ResponseJSON = "ResponseJSON" },
    { ID = "ID3", ResponseJSON = "ResponseJSON" },
}

Como posso fazer isso? Posso armazená-lo no Dictionary<string, string>?

c#
  • 1 respostas
  • 58 Views
Martin Hope
most.of.a.shark
Asked: 2025-04-03 05:27:10 +0800 CST

Nenhum tipo ao analisar dados XML em Python

  • 6

Gostaria de poder analisar algumas informações de dados xml enquanto usa namespaces. Tenho tentado ler/seguir os passos em: https://docs.python.org/3/library/xml.etree.elementtree.html#parsing-xml-with-namespaces

Este é um exemplo de como meu xml se parece insira a descrição da imagem aqui

Quando tento percorrer a árvore XML usando um loop for aninhado, parece que meu código consegue ler os subelementos com sucesso.

def toXML(s):
    xmlRoot= ET.fromstring(s)
    
    for child in xmlRoot:
        print(child.tag)
        for subchild in child:
            print(subchild.tag)
            for subchild in subchild:
                print(subchild.tag)

Saída:

{http://www.w3.org/2003/05/soap-envelope}Body
{http://www.onvif.org/ver10/search/wsdl}GetRecordingSummaryResponse
{http://www.onvif.org/ver10/search/wsdl}Summary

Process finished with exit code 0

No entanto, quando tento fazer isso da maneira legal

    for child in xmlRoot.find('{http://www.onvif.org/ver10/search/wsdl}Summary'):
        NumberRecordings=child.find('{http://www.onvif.org/ver10/schema}NumberRecordings')
        print(NumberRecordings.text)

Recebo este erro:

for child in xmlRoot.find('{http://www.onvif.org/ver10/search/wsdl}Summary'):
                 ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'NoneType' object is not iterable

Alguém sabe por que meu filho não tem nenhum?

python
  • 1 respostas
  • 37 Views
Martin Hope
Fedor
Asked: 2025-04-03 04:45:59 +0800 CST

A inicialização de uma constante estática pode ser ignorada pelo rótulo 'case'?

  • 9

Tenho uma constante declarada em uma casedas minhas switchdeclarações:

void foo( int& v ) {
    switch( v ) {
    case 0:
        static constexpr int c{ 0 };
        break; 
    case 1:
        v = c;
        break;
    }
}

Tudo funciona bem no GCC, Clang e EDG. Mas se eu compilar o programa no Visual Studio, ele reclama

erro C2360: a inicialização de 'c' é ignorada pelo rótulo 'case'

Demonstração online: https://gcc.godbolt.org/z/jTdnhfzoo

É correto que a inicialização da constante cpode ser pulada? O programa está realmente malformado ou deve ser aceito?

c++
  • 1 respostas
  • 182 Views
Martin Hope
frandude
Asked: 2025-04-03 04:35:10 +0800 CST

Existe uma função R para calcular somas de linhas usando um intervalo/janela de índices de colunas?

  • 13

Existe uma maneira de calcular a soma (ou média, etc.) de um intervalo de valores definidos para aquela linha em outra coluna?

Aqui estão alguns dados de exemplo:

structure(list(start = c("cmi_apr", "cmi_may", "cmi_may"), end = c("cmi_oct", 
"cmi_oct", "cmi_dec"), cmi_jan = c(2.35, 2.24, 37.66), cmi_feb = c(1.33, 
5.65, 43.23), cmi_mar = c(0.08, 4.43, 22.2), cmi_apr = c(0.17, 
6.48, 18.56), cmi_may = c(-5.61, 0.54, 21.52), cmi_jun = c(-6.37, 
-0.92, 13.86), cmi_jul = c(-6.53, 5.18, 2.81), cmi_aug = c(-2.37, 
4.4, 21.32), cmi_sep = c(1.28, 0.92, 19.48), cmi_oct = c(0.33, 
11.21, 26.43), cmi_nov = c(1.41, 9.18, 43.87), cmi_dec = c(2.21, 
10.96, 30.54)), row.names = c(NA, -3L), class = c("tbl_df", "tbl", 
"data.frame"))

Quero gerar somas de intervalo com base na variável startand endassim:

insira a descrição da imagem aqui

Eu tenho uma solução, porém meu conjunto de dados real tem mais de 60.000 linhas e demora muito para concluir o cálculo. Imagino que isso deva ser muito mais rápido, já que a adição é vetorizada. Aqui está minha solução atual:

compute_growing_season <- function(df, start_colname, end_colname, FUN) {
  # Generate column index vectors
  start_idx = sapply(start_colname, function(x) { which(x == names(df))} )
  end_idx = sapply(end_colname, function(x) { which(x == names(df))} )
  
  # Generate computed vector
  results <- numeric(nrow(df))
  for (i in 1:nrow(df)) {
    results[i] <- FUN(df[i, start_idx[i]:end_idx[i]], na.rm = F)
  }
  
  return(results)
}

output <- sample %>%
  mutate(
    cmi_growingseason_sum = compute_growing_season(., start, end, sum)
  )
  • 8 respostas
  • 513 Views
Martin Hope
Mister Moron
Asked: 2025-04-03 04:33:53 +0800 CST

Em um testbench, existe uma maneira de ver os regs/fios internos declarados de um módulo sem precisar conectá-los às portas?

  • 6

Digamos que estamos tentando escrever um código de testbench Verilog/SystemVerilog chamado SC_TB para o módulo sample_code. Existe uma maneira mais prática de ver o que reg Be wire Cwestá fazendo no testbench, sem criar uma porta para eles?

module sample_code(
   input A,
   output Z
);

   reg B;
   wire Cw;

   *stuff happens in this code*
endmodule

///código do testbench

module SC_TB();
   reg A;
   wire Z;
   
   sample_code SCInst(
      .A(A),
      .Z(Z)
   );
   initial begin
      A=0
      #x a=value;
   end

   initial begin
      $monitor(A,Z)
   end

Atualmente, para ver o que "reg B" e "wire Cw" estão fazendo, eu criaria portas para eles e incluiria essas portas no meu código de testbench. Para os wires (Cw) declarados internamente no sample_code, eu os comentaria e criaria uma porta de wire de saída com um nome semelhante. Para reg (reg B) declarado internamente no sample_code, eu também criaria uma porta de wire de saída e atribuiria o reg interno a essa porta de wire. Meu código e meu código de testbench com base no sample_code e SC_TB acabam ficando assim.

module sample_code(
   input A,
   output Z,
   output wire Cw,
   output wire Bw
);

   reg B;
   //wire Cw;

   assign Bw = B;

   *stuff happens in this code*
endmodule

///código do testbench

module SC_TB();
   reg A;
   wire Z;
   wire Cw;
   wire Bw;
   
   sample_code SCInst(
      .A(A),
      .Z(Z),
      .Cw(Cw),
      .Bw(Bw)
   );

   initial begin
      A=0
      #x a=value;
   end

   initial begin
      $monitor(A,Z,Cw,Bw) //it doesnt have to be "monitor", "$display" or just the timing diagram works.
   end
verilog
  • 1 respostas
  • 39 Views
Martin Hope
Hashim Qureshi
Asked: 2025-04-03 04:13:04 +0800 CST

AddEventListener agindo de forma estranha

  • 5

Acabei de começar a aprender javascript. Estou criando um aplicativo ToDo. Sempre que clico no botão Adicionar tarefa, o myFunction que criei não está funcionando como deveria. Sempre que o botão é clicado, leva segundos para responder, além da saída no console ser multiplicada. Obrigado antecipadamente. Muito apreciado.

function myFunction() {
  // code to be executed when the button is clicked
  const taskInput = document.getElementById("taskInput");
  const taskList = document.getElementById("taskList");
  //const task = taskInput.value.trim();
  const myButton = document.getElementById("mButton");

  //document.getElementById("taskList").innerHTML = userInput;
  myButton.addEventListener("click", function() {
    const li = document.createElement("li");
    li.createElement = '${taskInput.value} <button class="delete" onclick="deleteTask">Delete</button>';
    console.log("I m clicked");
  });
}
<script src="script.js"></script>
<div class="container">
  <h3>To-Do List</h3>
  <input type="text" id="taskInput" placeholder="Enter a task" />
  <button id="mButton" onclick="myFunction()">Add Task</button>
  <ul id="taskList"></ul>
</div>

javascript
  • 2 respostas
  • 60 Views
Martin Hope
Carlos
Asked: 2025-04-03 04:08:57 +0800 CST

Como obter um intervalo para fazer loop em contêineres em variantes

  • 6

Tenho a necessidade de mapear alguns elementos para certos ids, elementId's para ids de nó inicial em um gráfico. Preciso armazenar apenas ids dos elementos para que, geralmente, possamos trabalhar apenas com conjuntos ou vetores de size_t. Geralmente, há milhões de elementos que são adicionados em lotes para serem mapeados para um único id. É por isso que usamos representações específicas para atribuições típicas e as armazenamos em uma variante.

Por exemplo

//std::set -> random set of elements
//Interval -> elements from a starting id up to a final id
//Single -> just a single element 
using VariantSet = std::variant<std::set, Interval, Single>;

//This is the vector containing the mapping
std::vector< std::tuple<VariantSet, size_t> > mapping;

Começamos a usar std::ranges em várias partes e o resultado geral tem sido ótimo, mas fiquei preso com a variante. Gostaria de obter um intervalo de uma função para poder iterar sobre os elementos que são mapeados para um determinado id.

Por exemplo:

for (auto elementId: getMappedElements(mapping, interestingId){
   do_something_with_the_element(elementId);
}

O problema que encontrei é que tenho que usar std::visit para recuperar o intervalo do objeto subjacente armazenado na variante, mas esse intervalo será um tipo diferente dependendo de qual contêiner real é iterado. Por exemplo, o contêiner Singular estava retornando views::single enquanto o Interval estava retornando iota. Claro, isso enfurece o compilador, pois os visitantes devem retornar o mesmo tipo para cada tipo possível na variante e, claro, a função de encapsulamento getMappedElements também não pode retornar vários tipos.

Atualmente, estamos passando a função "do_something_with_the_element" como um lambda para que possamos fazer um visitante que, por sua vez, aplica esse lambda, mas isso bagunça alguns usos que tínhamos em mente. Existe uma maneira de atingir esse intervalo "polimórfico" para que eu possa realmente retornar um intervalo que mais tarde pode ser composto (muito provavelmente uma transformação)

Qualquer ajuda é bem-vinda.

EDIT: Link para o exemplo: https://godbolt.org/z/nx41v3Eqb . Foi enterrado nos comentários, copiado aqui para melhor visibilidade.

c++
  • 2 respostas
  • 122 Views
Martin Hope
Shoti
Asked: 2025-04-03 04:05:21 +0800 CST

VBA: Como usar uma ListBox para marcar caixas de seleção em outras 3 Listboxes

  • 6

insira a descrição da imagem aqui

Oi pessoal,

Descrição do problema: Tenho um listBox "Filters" e 3 outros ListBoxes contendo valores únicos de 3 colunas em 3 planilhas diferentes. Gostaria de selecionar um ou mais filtros no listBox "Filters" e usá-lo para marcar caixas de seleção onde quer que o texto do filtro ocorra em 3 outros ListBoxes, então deve funcionar como "contains" -> veja a simulação na captura de tela. Sei que o ListBox tem a propriedade Selected, mas não tenho ideia de como usá-lo para marcar outras caixas de seleção.

-----------UserForm1------------
Private Sub UserForm_Activate()

Dim r As Range
With Worksheets("Carriers")
        Set r = .Range("A2", .Range("A1000").End(xlUp))
        
        Me.lstB_Carriers.RowSource = "Carriers!" & r.Address
End With
End Sub
--------------Module1---------------
Sub SentUpdate()    

RemoveDuplicatesNLOB
Call Module2.RemoveDuplicatesNLIB
Call Module3.RemoveDuplicatesHUOB

UserForm1.Show


End Sub

Sub RemoveDuplicatesNLOB()

  On Error Resume Next
    Sheet2.ShowAllData
  On Error GoTo 0

    Dim AllCells As Range, Cell As Range
    Dim NoDupes As Collection, NoDupesSorted As Collection
    Dim i As Long, j As Long
    Dim Item As Variant

    Set NoDupes = New Collection

    Set AllCells = Sheet2.Range("D5:D" & Sheet2.Range("D10000").End(xlUp).Row)

    On Error Resume Next
    For Each Cell In AllCells
        NoDupes.Add Cell.Value, CStr(Cell.Value)
    Next Cell

    On Error GoTo 0


    With UserForm1
        .lbl_totalLSP_NLOB.Caption = "Total Items: " & AllCells.count
    End With

    Set NoDupesSorted = New Collection

    NoDupesSorted.Add NoDupes(1), CStr(NoDupes(1))

    For i = 2 To NoDupes.count
        For j = 1 To NoDupesSorted.count
            If NoDupes(i) < NoDupesSorted(j) Then
                NoDupesSorted.Add NoDupes(i), CStr(NoDupes(i)), j
                Exit For
            End If
        Next j
    Next i

    For Each Item In NoDupesSorted
        UserForm1.lstB_NLOB.AddItem Item
    Next Item

End Sub
excel
  • 1 respostas
  • 56 Views
Martin Hope
James
Asked: 2025-04-03 03:57:30 +0800 CST

Como incluir o caminho no elemento url do servidor da especificação OpenAPI gerada pelo aplicativo ASP.NET Core Minimal API?

  • 5

Tenho um aplicativo C# / ASP.NET Core Minimal API com Swagger gerando uma especificação OpenAPI. Para corresponder ao yml de publicação, preciso adicionar um servidor com caminho e remover os elementos de caminho de grupos individuais.

Eu Program.csconfiguro o gerador com este código:

.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new OpenApiInfo
    {
        Title = "My API",
        Version = "2.0",
    });

    c.AddServer(new OpenApiServer
    {
        Url = "https://api.myapi.org.uk/api/v2",
        Description = "Production"
    });

    c.AddServer(new OpenApiServer
    {
        Url = "https://localhost:{port}/api/v2",
        Description = "Local",
        Variables =
        {
            new ("port", new OpenApiServerVariable
            {
                Default = "7147",
            }),
        },
    });
})

Depois, mapeie um ponto final em um grupo como:

var builder = app.MapGroup("/needs");
builder .MapGet("/", async (CancellationToken cancellationToken) => { ... });

Quando tento testar isso com a Swagger UI, recebo uma resposta 404. Mas se eu mover o caminho do servidor para o grupo, funciona perfeitamente.

.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new OpenApiInfo
        {
            Title = "My API",
            Version = "2.0",
        });

        c.AddServer(new OpenApiServer
        {
            Url = "https://api.myapi.org.uk/",
            Description = "Production"
        });

        c.AddServer(new OpenApiServer
        {
            Url = "https://localhost:{port}/",
            Description = "Local",
            Variables =
            {
                new ("port", new OpenApiServerVariable
                {
                    Default = "7147",
                }),
            },
        });
    })

// ...

var builder = app.MapGroup("/api/v2/needs");
builder .MapGet("/", async (CancellationToken cancellationToken) => { ... });

Eu tentei muitas combinações, mas não consigo descobrir o que está errado. Isso acontece por acaso de ser parte da especificação que não foi implementada corretamente ou há uma maneira de fazer funcionar?

Em última análise, a definição gerada precisa se parecer com

openapi: 3.0.1
info:
  title: My API
  version: '2.0'
servers:
  - url: https://myapi.org.uk/api/v2
    description: Production
  - url: 'https://localhost:{port}'
    description: Local
    variables:
      port:
        default: '7147'

paths:
  /needs:
    get:
      ...
c#
  • 1 respostas
  • 37 Views
Prev
Próximo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve